Widget Logic中的条件标签,用于检查是顶级页面还是子页面

时间:2013-07-01 作者:Caroline Elisa

我正在使用Widget Logic plugin 使用Wordpress条件标记(或任何通用PHP代码)在特定页面上显示小部件。

我想做的是只在子页面上显示一个小部件,而不是在顶级页面上。我尝试了以下两种方法,但它们在所有页面上都返回true(因此小部件在所有页面上都显示):

global $post; return ($post->post_parent != 0);
以及

global $post; return ( is_page() && $post->post_parent );
注:我尝试了这一测试,小部件显示在ID 61页及其子项上,而不仅仅是我所期望的子项上:

global $post; return ($post->post_parent=="61");
有什么建议吗?

谢谢

2 个回复
最合适的回答,由SO网友:Caroline Elisa 整理而成

抱歉,原来我的主题使用有问题get_posts 在循环外列出子页,而不wp_reset_postdata. 所以aglobal $post; 我想是冲突吧。

global $post; return ($post->post_parent != 0); 工作正常。

SO网友:jot

您可以在plugin\'s page 在wordpress。组织。选择“其他注释”选项卡。您可以在示例列表中找到它:

global $post;

// WP page that is a child of page 77
return in_array(77, get_post_ancestors($post)); 
Edit: 作为您建议的替代方案,您可以尝试

global $post;
return !empty(get_post_ancestors($post)); 
这是一个昂贵的调用,最好只用于测试。但我怀疑您的页面层次结构可能有问题。您的顶级页面是否可能不在根级别?

结束

相关推荐

Wp-plugins(必须使用Plugins)URL是否可以在unctions.php中使用?

wp插件(必须使用插件)URL是否可以作为在函数中使用的目标。php?我有一个mu函数。mu plugins文件夹中的php文件。一个函数调用javascript文件(alerts.js) 位于example.com/wp-content/mu-plugins/js/. 如何在我的函数中定位mu插件文件夹?目前,我正在使用get_site_url() . \'/wp-content/mu-plugins/js/alerts.js\',虽然与问题不完全相关,但这是用于调用javascript文件的完整函数: