我试图设置一个if/then语句,以便如果page\\u id不是这三个页面中的一个或它们的祖先,那么使用默认徽标。我正在函数文件中使用is\\u tree()函数,并在调用之前重置post数据。
但只有当我注释掉最后一个“else”(/home)语句时,它才起作用。如果我留下最后一条else语句,它不会识别page_id
并且没有显示正确的徽标(主页显示在“conway”上)。
当我对查询的对象执行var转储时,会显示正确的ID。
这是我的is_tree
功能:
function ac_my_tree() {
function is_tree($pid)
{
global $post;
$ancestors = get_post_ancestors($post->$pid);
$root = count($ancestors) - 1;
$parent = $ancestors[$root];
if(is_page() && (is_page($pid) || $post->post_parent == $pid || in_array($pid, $ancestors)))
{
return true;
}
else
{
return false;
}
};
}
add_action(\'wp_head\', \'ac_my_tree\');
下面是我的模板文件中的if/then:
<?php wp_reset_postdata(); ?>
<?php
/*
Which logo do we use?
*/
if (is_tree(\'33\') ) { // if is conway
$logoClass = \'logo-conway \';
$link = get_bloginfo(\'url\') . \'/conway\';
} elseif (is_tree(35) ) { // if is cullowhee
$logoClass = \'logo-cullowhee \';
$link = get_bloginfo(\'url\') . \'/cullowhee\';
} if (is_tree(31) ) { // if is Johnson City
$logoClass = \'logo-johnson-city \';
$link = get_bloginfo(\'url\') . \'/johnson-city\';
} else { // if is something else
$logoClass = \'logo-home\';
$link = get_bloginfo(\'url\') . \'/home\';
}
?>
编辑:对不起,我的if/then中间有一个“if”。这是漫长的一天。