相关类别->文章页面侧栏中的摘录、标题和缩略图

时间:2011-12-20 作者:Chris

我做了一些研究并尝试了不同的解决方案,但这段代码让我从文章所属的类别中获得了侧边栏中的实际文章内容。

但我需要显示摘录,而不是全文和缩略图,我不知道如何添加它们。

有什么建议吗?

<?php
$categories = get_the_category();
echo \'<ul><li>\';
foreach ($categories as $c) {
    if (strpos(get_permalink($post->ID), $c->slug) !== false) {
        echo \'<a href="/\' . $c->slug . \'/">\' . $c->name . \'</a>\';
        $current_cat = $c->cat_ID;
    }
}
$posts = get_posts(array(\'cat\' => $current_cat));
if (!empty($posts)) {
    echo \'<ul>\';
    foreach ($posts as $p) {
        echo \'<li><a href="\' . get_permalink($p->ID) . \'">\' . $p->post_title . \'</a></li>\';
        echo $p->post_content;
    }
    echo \'</ul>\';
}
echo \'</li></ul>\';
?> 
或者另一种方法?非常感谢。

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

我已经找到了一个解决方案,并根据我的需要对其进行了修改,也许有人也在寻找相同的解决方案,所以你可以这样做:

<?php
if ( is_single() ) {
  $categories = get_the_category();
  if ($categories) {
    foreach ($categories as $category) {
      $cat = $category->cat_ID;
      $args=array(
        \'cat\' => $cat,
        \'post__not_in\' => array($post->ID),
        \'posts_per_page\'=>3,
        \'offset\'=>1,
        \'caller_get_posts\'=>1
      );
      $my_query = null;
      $my_query = new WP_Query($args);
      if( $my_query->have_posts() ) {
        echo \'<h2>More in this section</h2>\';
        while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <div class="cat-related-articles">
<?php the_post_thumbnail(\'thumb\'); ?>          

<p class="sidebar-article-title"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link 

to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>

<?php the_excerpt(5); ?>  

          </div>
         <?php
        endwhile;
      } //if ($my_query)
    } //foreach ($categories
  } //if ($categories)
  wp_reset_query();  // Restore global post data stomped by the_post().
} //if (is_single())
?>
现在,我的问题是:

\'posts_per_page\'=>3,
\'offset\'=>1,
它们不起作用。我正在尝试省去,而不是显示我当前所在的帖子。请记住,如果我单击一篇文章,侧栏中的这段代码将显示同一类别中另外3篇文章的标题、缩略图和摘录。

所以how do I make it not to display the post 我当前正在查看?

另一件事,我的文章属于两个类别,代码将显示每个类别的帖子。How do I get rid of this?!

SO网友:Jeremy Jared

我试着使用你的代码并修复它,但没有任何运气。试试这个,让我知道它是如何为您服务的:

<?php
  $args = array( 
    \'numberposts\' => 3, 
    \'order\'=> \'DESC\', \'orderby\' => \'post_date\', 
    \'category\' => \'\' 
    );
  ?>
<?php
  $postslist = get_posts( $args );
  foreach ($postslist as $post) :  setup_postdata($post);
  ?>
  <h2>
    <a href="<?php the_permalink(); ?>">
    <?php the_title(); ?>
    <?php the_post_thumbnail(\'thumbnail\'); ?></a>
  </h2>
<?php the_excerpt(); ?>
<?php endforeach; ?>

SO网友:jot

试用插件Mini Loops. 它具有您需要的功能。同时选中“从当前类别获取帖子(如果存档)?”和“从第一类中获取帖子(如果是单个的话)?”。

结束

相关推荐

GET_CATEGORIES返回具有一个类别的数组

我正在一个自定义插件上运行一个查询,以显示所有类别,并将它们放入下拉列表(所选部分位于循环之外),如下所示:<?php $ember_categories = get_categories(); foreach($ember_categories as $ember_category) { echo \'<option value=\"\' . $ember_category->cat_ID . \'\">\' . $ember_category-&