Change $post variable before applying "the_content" filter
-
Hi,
I’ve noticed that the Page in Widget plugin applies the
the_content
filters to the page content before displaying it.Some filter functions which are introduced by plugins rely on the get_the_ID() function of WordPress which does not return the page ID of the page embedded in the widget but the page ID of the page the user has requested. This breaks one of the plugins installed on my server, namely the 2 Click Social Media Buttons plugin.
I have modified your code as follows: I have exchanged this line of code
$content = apply_filters('the_content', $this->get_the_content($page, $more));
for these lines of code:
// Switch to this post global $post; $post_backup = $post; $post = $page; setup_postdata( $post ); $content = apply_filters('the_content', $this->get_the_content($page, $more)); // After filters have been applied, switch back $post = $post_backup; setup_postdata( $post );
That fixes the problem for me.
Greets,
Thomas
- The topic ‘Change $post variable before applying "the_content" filter’ is closed to new replies.