显示内容的父项和子项条件标记有问题

时间:2011-10-11 作者:Jeff

我试图根据用户所在的页面有条件地更改链接,但我很难找到执行该操作的正确代码。

下面是我想做的(用英语解释代码)

如果用户未登录且位于关键字或关键字的子级页面(例如,domain.net/keyword/pricing或domain.net/keyword/about或简单的domain.net/keyword)

然后显示X

如果用户未登录,并且在上述页面之外的任何其他页面上

然后显示Y

如果用户已登录

那就什么都不要做

我尝试了多种条件并阅读了wordpress codex,但无法理解这一条。我是php新手,所以如果答案很简单,我也不会感到惊讶。

我提前感谢您的帮助!

2 个回复
SO网友:kaiser

如果是关于子帖子类型*或分类**:

// page/post/cpt parent check:
$post_object = get_queried_object();
// check if the page has a parent
if ( $post_object->post_parent )
    // do stuff

// cat/tax parent check:
$taxonomy_object = get_the_category( get_query_var(\'cat\') );
// check if the cat/tag/tax has a parent:
if ( $taxonomy_object->parent )
    // do stuff
可能是你必须检查if 反对0 !== $post_/taxonomy_object, 但它的工作原理应该接近上面所示。

帖子类型是内置的,如帖子和页面,或自定义的,如自定义帖子类型。

**)分类法是内置的,如类别(层次)、标记(非层次)、post\\u格式等,或自定义分类法,如自定义分类法。

SO网友:Brian Fegter

我假设您指的是页面和子页面。如果是这样,您可以在循环中的模板中使用:

$page_title = "Foo";
global $post;
$parent = $post->post_parent;

if(is_page($title))
    echo "bar";
if($parent){
    $parent = get_post($parent);
    if($parent->post_title == $title)
        echo "bar";
}
if(is_user_logged_in())
    echo "Foo Bar";

结束

相关推荐