如何确定PAGE_FOR_POST是否正在显示(以便设置菜单项的样式)

时间:2011-11-15 作者:s.d

我已经为帖子设置了一个静态页面(页面id=110)。只有当用户登录时,此页面才应包含在菜单中。后者是通过以下添加来实现的header.php (来自menu <ul> 标签)。

<?php wp_list_pages(\'sort_column=ID&exclude=100,110,145&title_li=\'); ?>
        <?php if ( is_user_logged_in() ) { ?>
            <li ><a href="<?php echo get_permalink(110); ?>">Title</a></li>
        <?php } else { ?>

        <?php } ?>
我正在使用freshy2 并定制了CSS,以便标题导航菜单中当前页面的链接具有其他页面的另一种背景颜色(标准程序…)。

然而,由于ID为110的页面是静态贴子页面,我找不到一个解决方案来对该页面执行相同的操作。这是因为is_page(110) 退货false 因为它将当前职位类型识别为is_single() 当我查询帖子ID时,会返回最新帖子的ID。显然,我不能使用后者来查询当前显示,因为它一直在变化。

这是我目前的情况。这类作品,但只完成了一半,因为现在背景颜色始终是特殊颜色,即使帖子页面不是当前显示的“项目”。

<?php if ( is_user_logged_in() ) { ?>
            <li <?php
                if (get_option(\'page_for_posts\'))
                { 
                    echo " class=\\"page_item page-item-110 current_page_item\\"";
                }
                else
                { 
    global $wp_query;
    $thePostID = $wp_query->post->ID;
                    echo " class=\\"" . $thePostID . "\\"";
                }
            ?>><a href="<?php echo get_permalink(110); ?>">Title</a></li>
        <?php } else { ?>

        <?php } ?>
有什么想法吗?提前多谢!

EDIT:

建议使用此代码below, 我只是简单地添加了原始数据中缺少的值wp_list_pages):

        <?php if(!is_user_logged_in())
{
$args = array(
\'exclude\' => \'100,110,145\',
\'sort column\' => \'ID\',
\'title_li\' => \'\'
 );
}
else
{
$args = array(
\'exclude\' => \'100,145\',
\'sort column\' => \'ID\',
\'title_li\' => \'\'
 );
}

wp_list_pages( $args );
?>

1 个回复
最合适的回答,由SO网友:SamiSalami 整理而成

我认为,如果您将条件包装在参数周围,而不是菜单链接本身,那么这应该是可行的:

if(!is_user_logged_in())
{
$args = array(
\'exclude\'      => \'100,110,145\'
 );
}
else
{
$args = array(
\'exclude\'      => \'100,145\'
 );
}

wp_list_pages( $args );

结束

相关推荐

下面的代码会让我的css以最佳的方式处理图像吗?

在外观/编辑器中,“我的主题”的样式表包含以下代码: #content img { margin: 0; max-width: 640px; } #content .attachment img { max-width: 900px; 这是否意味着,如果我使用WordPress中的“添加图像”按钮,然后选择“从url”在博客文章中发布图像,那么如果url中的图像大于我博客文章的最大宽度,这将无关紧要它不会导致图像花费比加载到用户计算机