1

在我的 Wordpress 博客上,我经常使用摘录。在我的主页上,我希望在与文本相同的行上有一个“阅读更多...”(没有 CSS),但是我不希望它出现在我的新闻页面上。我发现这段代码完全符合我的要求,但它适用于所有摘录。我如何让它在主页上做到这一点?

function new_excerpt_more( $more ) {
    return ' <a class="read-more" href="'
        . get_permalink( get_the_ID() )
        . '">Read More...</a>';
}
add_filter( 'excerpt_more', 'new_excerpt_more' );
4

1 回答 1

2

这应该有效:

function new_excerpt_more($more) {
  if(is_home())
    $more = ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">Read More...</a>';

  return $more;
}
add_filter( 'excerpt_more', 'new_excerpt_more' );

编辑:在您的主题中,在循环之前,您应该添加一个变量(一个标志)以查看它是否是您想要的页面:

$my_flag = is_page( array( id, id, id, id, 'page-name', 'page-slug' );

if( have_posts() ) :
  while( have_posts() ) :
    // Your code
  endwhile;
endif;

在你的函数(new_excerpt_more)中,你必须像这样检查它:

function new_excerpt_more($more) {
      global $my_flag;

      if(is_home() || $my_flag)
        $more = ' <a class="read-more" href="'. get_permalink( get_the_ID() ) . '">Read More...</a>';

      return $more;
    }
    add_filter( 'excerpt_more', 'new_excerpt_more' );

我还没有测试过,但它应该可以工作。但是,不应该页面显示单个内容吗?它永远不会只显示摘录(当然,这取决于您的主题:P)

文档: is_home()

于 2013-08-28T04:19:29.563 回答