Skip to content

Plugin Conflict with Simmer Recipes (Issue with do_shortcode()) #8513

@collinbarrett

Description

@collinbarrett

Opening bug per suggestion on plugin forum thread here.

Please give us a description of what happened.

Recently, there has been an incompatibility related to a new version of Yoast SEO. We use the Simmer plugin which hasn’t been updated in nearly two years (other than a readme update). However, a recent version of Yoast SEO (within the last few months) started triggering PHP errors when generating its shortcode. When I deactivate the Yoast SEO plugin, things work as expected again. Below are three sample errors from my nginx error logs that demonstrate the issue.

Any ideas on how to resolve? I recognize that this could be a bug in the Simmer plugin, but I need to know what changed in Yoast SEO that caused the breakage to occur if that is the case. Thanks!

2017/11/25 09:42:45 [error] 1967#1967: *198 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function simmer_get_template_part() in /var/www/jennythebaker/wp-content/plugins/simmer/core/recipes/class-simmer-recipe-shortcode.php:101
Stack trace:
#0 /var/www/jennythebaker/wp-includes/shortcodes.php(319): Simmer_Recipe_Shortcode->display_shortcode(Array, '', 'recipe')
#1 [internal function]: do_shortcode_tag(Array)
#2 /var/www/jennythebaker/wp-includes/shortcodes.php(197): preg_replace_callback('/\\[(\\[?)(recipe...', 'do_shortcode_ta...', '[recipe id="120...')
#3 /var/www/jennythebaker/wp-content/plugins/wordpress-seo/admin/ajax/class-shortcode-filter.php(33): do_shortcode('[recipe id="120...')
#4 /var/www/jennythebaker/wp-includes/class-wp-hook.php(286): WPSEO_Shortcode_Filter->do_filter('')
#5 /var/www/jennythebaker/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
#6 /var/www/jennythebaker/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
#7 /var/www/jennythebaker/wp-admin/admin-ajax.php(97): do_action('wp_" while reading response header from upstream, client: 67.202.83.124, server: jennythebaker.com, request: "POST /wp-admin/admin-ajax.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "jennythebaker.com"

2017/11/25 09:43:19 [error] 1967#1967: *217 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function simmer_get_template_part() in /var/www/jennythebaker/wp-content/plugins/simmer/core/recipes/class-simmer-recipe-shortcode.php:101
Stack trace:
#0 /var/www/jennythebaker/wp-includes/shortcodes.php(319): Simmer_Recipe_Shortcode->display_shortcode(Array, '', 'recipe')
#1 [internal function]: do_shortcode_tag(Array)
#2 /var/www/jennythebaker/wp-includes/shortcodes.php(197): preg_replace_callback('/\\[(\\[?)(recipe...', 'do_shortcode_ta...', '[recipe id="120...')
#3 /var/www/jennythebaker/wp-content/plugins/wordpress-seo/admin/ajax/class-shortcode-filter.php(33): do_shortcode('[recipe id="120...')
#4 /var/www/jennythebaker/wp-includes/class-wp-hook.php(286): WPSEO_Shortcode_Filter->do_filter('')
#5 /var/www/jennythebaker/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array)
#6 /var/www/jennythebaker/wp-includes/plugin.php(453): WP_Hook->do_action(Array)
#7 /var/www/jennythebaker/wp-admin/admin-ajax.php(97): do_action('wp_" while reading response header from upstream, client: 67.202.83.124, server: jennythebaker.com, request: "POST /wp-admin/admin-ajax.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "jennythebaker.com"

2017/11/25 09:43:19 [error] 1967#1967: *215 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to undefined function simmer_get_template_part() in /var/www/jennythebaker/wp-content/plugins/simmer/core/recipes/class-simmer-recipe-shortcode.php:101
Stack trace:
#0 /var/www/jennythebaker/wp-includes/shortcodes.php(319): Simmer_Recipe_Shortcode->display_shortcode(Array, '', 'recipe')
#1 [internal function]: do_shortcode_tag(Array)
#2 /var/www/jennythebaker/wp-includes/shortcodes.php(197): preg_replace_callback('/\\[(\\[?)(recipe...', 'do_shortcode_ta...', '<p>Note to self...')
#3 /var/www/jennythebaker/wp-includes/class-wp-hook.php(286): do_shortcode('<p>Note to self...')
#4 /var/www/jennythebaker/wp-includes/plugin.php(203): WP_Hook->apply_filters('<p>Note to self...', Array)
#5 /var/www/jennythebaker/wp-content/plugins/wordpress-seo/admin/links/class-link-watcher.php(107): apply_filters('the_content', 'Note to self: B...')
#6 /var/www/jennythebaker/wp-content/plugins/wordpress-seo/admin/links/class-link-watcher.php(56): WPSEO_Link_Watcher->process(1" while reading response header from upstream, client: 67.202.83.124, server: jennythebaker.com, request: "POST /wp-admin/post.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "jennythebaker.com"

Please describe what you expected to happen and why.

I expect to be able to save draft or publish posts including a Simmer recipe shortcode when WordPress SEO is enabled. (Rather than seeing white screen and errors like above in logs.)

How can we reproduce this behavior?

  1. Install and activate WordPress SEO plugin.
  2. Install and activate Simmer plugin.
  3. Create a Simmer recipe.
  4. Create a new WordPress post and include the shortcode to the Simmer recipe in step 3.
  5. Click "Save Draft" or "Publish".

Technical info

  • WordPress version: 4.9.1
  • Yoast SEO version: 5.9.3
  • Relevant plugins in case of a bug: Simmer 1.3.11

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions