获取相关作者创建的帖子的摘录

时间:2013-08-22 作者:user36987

这已经困扰了我很多年了,不能让它正常工作。我在我的函数文件中使用以下代码来显示由同一作者创建的帖子和当前的单个帖子。

function get_related_author_posts() {
global $authordata, $post;

$authors_posts = get_posts( array( \'author\' => $authordata->ID, \'post__not_in\' => array( $post->ID ), \'posts_per_page\' => 1, \'post_type\' => \'artistblog\' ) );


foreach ( $authors_posts as $authors_post ) {
    $output .= \'<div class="artist-blog-thumb"><a href="\' . get_permalink( $authors_post->ID ) . \'">\'. get_the_post_thumbnail( $authors_post->ID,\'medium\' ) .\'</a></div><h3><a href="\' . get_permalink( $authors_post->ID ) . \'">\' . apply_filters( \'the_title\', $authors_post->post_title, $authors_post->ID ) . \'</a></h3>\';

}


return $output;
}
这很有效。然而,我还想为每篇文章显示自动修剪的摘录。我尝试过各种方法,但没有一种效果很好。

有人能帮忙吗?

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

你的代码没有错。然而,在我看来,以稍微不同的方式处理这项任务会更好。

Usage

在您的功能中。php:

/* This function returns the related posts in an array of objects. You can set how many items you want retrieve.If not set, the number of items will be set to "1". */
function get_related_author_posts( $items = 1 ) {
  global $authordata, $post;
  $authors_posts = get_posts( 
  array( 
      \'author\' => $authordata->ID, 
      \'post__not_in\' => array( $post->ID ), 
      \'posts_per_page\' => $items, 
      \'post_type\' => \'artistblog\' 
    ) 
  );
  return $authors_posts;
}
在模板文件中:

<?php 
  $related_posts = get_related_author_posts( 3 );
  foreach( $related_posts as $post ) : setup_postdata( $post ); ?>
  <div class="artist-blog-thumb">
    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail( \'medium\' ); ?></a>
  </div>
  <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
  <div class="excerpt">
    <p><?php the_excerpt(); ?></p>
  </div>
<?php endforeach; wp_reset_postdata(); ?>
如果你卡住了,请告诉我。

结束

相关推荐

Replace text in excerpt

我的自定义WP安装有一个单独的主题,将用于移动用户,在我的情况下,我需要在所有摘录实例中更改html标记,但在不更改DB的情况下,我发现这个简单的功能非常完美,但我无法使其工作,什么都没有发生。function replace_content_on_the_fly($text){ $replace = array( // \'words to find\' => \'replace with this\' \'<p>\' => \'<d