!IS_PAGE_TEMPLATE未使用&&运算符

时间:2015-05-10 作者:tigre

使用single-course.php 模板我想要一个不同的面包屑选项,但它没有遵守&& if语句中的运算符:

<?php if ( function_exists(\'yoast_breadcrumb\') && !is_page_template( \'single-course.php\' ) ) {
    yoast_breadcrumb(\'<p id="breadcrumbs">\',\'</p>\');
} else { ?>
    <p id="breadcrumbs"><span xmlns:v="http://rdf.data-vocabulary.org/#"><span typeof="v:Breadcrumb"><a href="<?php echo site_url(); ?>" rel="v:url" property="v:title">Home</a> » <span rel="v:child" typeof="v:Breadcrumb"><a href="<?php echo site_url(\'/tracks\'); ?>" rel="v:url" property="v:title">Tracks</a> » <strong class="breadcrumb_last"><?php echo get_the_title(); ?></strong></span></span></span></p>
<?php } ?>
这是在single-course.php 循环后的模板(及其他):

    <main class="main" role="main">
        <?php while (have_posts()) : the_post(); ?>
            <?php get_template_part(\'templates/page\', \'header\'); ?>
谢谢你的帮助。

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

您需要包括is_page() 在您的if声明中:

<?php if ( function_exists(\'yoast_breadcrumb\') && is_page() && !is_page_template( \'single-course.php\' ) ) {
    yoast_breadcrumb(\'<p id="breadcrumbs">\',\'</p>\');
} else { ?>
    <p id="breadcrumbs"><span xmlns:v="http://rdf.data-vocabulary.org/#"><span typeof="v:Breadcrumb"><a href="<?php echo site_url(); ?>" rel="v:url" property="v:title">Home</a> » <span rel="v:child" typeof="v:Breadcrumb"><a href="<?php echo site_url(\'/tracks\'); ?>" rel="v:url" property="v:title">Tracks</a> » <strong class="breadcrumb_last"><?php echo get_the_title(); ?></strong></span></span></span></p>
<?php } ?>

SO网友:chrisguitarguy

在…上single custom post types 使用单一课程。php模板我想要一个不同的面包屑选项

is_page_template 无法在非页面上工作。如果你想知道你是否在一个自定义的帖子类型页面上,你应该使用is_singular 并传入自定义帖子类型名称:

if (function_exists(\'yoast_breadcrumb\') && !is_singular(\'course\')) {
  // ...
} else {
  // ...
}
这里有一个重要提示:如果yoast_breadcrumb 不存在,你会在每一页上找到你的备用面包屑,而不仅仅是在单一的课程页面上。

结束

相关推荐