apply_filters to $GLOBALS

时间:2015-08-11 作者:MartinU

我正在使用Pootle页面构建插件构建一个单页网站。使用get\\u page,我在1页上显示每个单独的页面。为了针对Pootle页面生成器内容,我使用以下代码:

$content = $GLOBALS[\'Pootle_Page_Builder_Render_Layout\']->panels_render( $page_data->ID );
当我尝试实现一个像旋转木马这样的插件时,我需要使用一个短代码,但短代码不起作用。

为了使短代码有效,我需要使用

apply_filters(\'the_content\', $page_data->post_content);
除了,而不是\'the_content\'我使用:

$content = $GLOBALS[\'Pootle_Page_Builder_Render_Layout\']->panels_render( $page_data->ID );
是否有人知道如何将apply\\u过滤器添加到$GLOBALS[\'whatever\'] 所以短代码可以工作

1 个回复
SO网友:David

假设$GLOBALS[\'Pootle_Page_Builder_Render_Layout\'] 包含的实例Pootle_Page_Builder_Render_Layout, 方法panels_render() returns a string.

因此,只需将方法调用作为参数传递给apply_filters():

$content = apply_filters( \'the_content\', $GLOBALS[\'Pootle_Page_Builder_Render_Layout\']->panels_render( $page_data->ID ) );
我不确定这是否是插件API的预期用途,因为Pootle_Page_Builder_Render_Layout::panels_render() 从内容中删除一些默认筛选器(wptexturize, wpautopconvert_chars). 因此,也许你的担心也值得一提关于插件的问题support forum.

结束

相关推荐

SHORTCODE_UNAUTOP()是否损坏?

shortcode_unautop() 在里面/wp-includes/formatting.php 应该在文本块中找到短代码,并从中删除换行段落标记。在这个过程中,我一直对段落标记存在问题。以下是var_dump($pee), 我将其放在函数的最开头,即处理前的字符串:string(353) \"<p>[row wrap=\"true\"]</p> <p>[one_half]</p> <p>[text_block]Fusce