0

我正在使用以下代码来显示 Genesis 中的帖子信息。但我有一个问题。我不想在某些特定页面(如博客页面和主页)上显示帖子信息。

所以我尝试了一些方法但没有奏效。

实际上我已经创建了页面模板.. page-blog.phppage-home.php

remove_action( 'genesis_before_post_content', 'genesis_post_info' );
add_action( 'genesis_before_post_title', 'child_post_info' );

function child_post_info() {
    if (!is_page('blog')) {
    return;
?>

    <div class="post-info">
        <span class="date published time">
            <time class="entry-date" itemprop="startDate" datetime="<?php echo get_the_date( 'c' ); ?>" pubdate><?php echo get_the_date(); ?></time>
        </span> By 
        <span class="author vcard">
            <a class="fn n" href="<?php echo get_the_author_url( get_the_author_meta( 'ID' ) ); ?>" title="View <?php echo get_the_author(); ?>'s Profile" rel="author me"><?php the_author_meta( 'display_name' ); ?></a>
        </span>
        <span class="post-comments">&middot; <a href="<?php the_permalink() ?>#comments"><?php comments_number( 'Leave a Comment', '1 Comment', '% Comments' ); ?></a></span>
        <?php // if the post has been modified, display the modified date
        $published = get_the_date( 'F j, Y' );
        $modified = the_modified_date( 'F j, Y', '', '', FALSE );
        $published_compare = get_the_date( 'Y-m-d' );
        $modified_compare = the_modified_date( 'Y-m-d', '', '', FALSE ); 
            if ( $published_compare < $modified_compare ) {
                echo '<span class="updated"><em>&middot; (Updated: ' . $modified . ')</em></span>';
            } ?>
    </div>
<?php }
}

请给我一些想法,我该如何解决这个问题。

现在:

我创建了一个新文件meta-postinfo.php

并保存

<div class="post-info">
...
</div>

并在functions.php文件中..

remove_action( 'genesis_before_post_content', 'genesis_post_info' );
add_action( 'genesis_before_post_title', 'child_post_info' );

function child_post_info() {
    if ( !is_home() && !is_page(array('blog', 'inspiring quotes')) ) { 
        get_template_part('meta', 'postinfo'); 
    }; 
}

上面的代码适用于博客页面和主页,但不适用于“鼓舞人心的报价”页面,尽管我已经尝试过

    if ( !is_home() && !is_page('blog') && !is_page('inspiring quotes') ) {

但不工作..你有什么想法吗?

4

1 回答 1

1

要从特定页面隐藏模板中的给定函数,请使用 is_page() 函数,如下所示(使用 about slug 隐藏页面):

<?php
if ( !is_page('about') ) {
// This function will not run on the homepage
}; 
?>

要从主页中隐藏某些内容,请使用 is_Home

<?php
if ( !is_home() ) {
// This function will not run on the homepage
}; 
?>

请参阅:http ://codex.wordpress.org/Function_Reference/is_page和http://codex.wordpress.org/Function_Reference/is_home

编辑:这不会在 add_action 调用的函数中,而是可以直接写入您的模板中应该显示的位置,例如:

<?php
if ( !is_home() ) {
   <div class="post-info">
    <span class="date published time">
    // ... the rest of this display template.
   }; 
  ?>

如果要在多个模板中使用它,您可以将其移动到单独的文件并使用如下:

<?php
if ( !is_home() ) {
   get_template_part('postinfo');
   }; 
  ?>
于 2012-08-02T21:30:51.377 回答