我有一个插件,它将该方法添加到“the\\u content”过滤器中。
add_filter(\'the_content\', \'myFilteringFunction\', 10000);
在这个函数中,我想在内容的开头和结尾添加一些链接。但我只需要对显示页面的“主要”内容执行此操作,所以不需要在任何小部件中执行,也不需要在页脚、页眉等中执行。
此外,我只想将其包含在我在同一插件中定义的自定义帖子类型中。所以我算出了那种支票,我想这就足够了。
if( is_single() && get_query_var(\'post_type\') == \'myCustomPostType\' && is_main_query() )
不幸的是,它并没有按预期工作——至少不是在所有情况下。
在页面上插件WP Types 已安装,但不起作用(尽管存在条件,但仍添加了链接)。为什么?
SO网友:Stephen M. Harris
根据Wordpress documentation, 您可以使用以下代码完成此操作:
add_filter( \'the_content\', \'filter_the_content_in_the_main_loop\' );
function filter_the_content_in_the_main_loop( $content ) {
// Check if we\'re inside the main loop in a single post page.
if ( is_single() && in_the_loop() && is_main_query() ) {
return $content . "I\'m filtering the content inside the main loop";
}
return $content;
}
或者通过过滤器回调函数开头的一行使用相同的逻辑:
if( !is_single() || !in_the_loop() || !is_main_query() ) return $content;