获取自定义分类列表中自定义分类的第一篇文章的链接

时间:2016-06-25 作者:Ben

目前,我正在使用自定义字段进行此操作,但我希望它是自动的。基本上,我有一个页面,可以列出自定义分类法的所有条目,但我希望该列表的链接指向所述分类法术语的第一篇文章。

<?php 

$tax = \'issues\';
$terms = get_terms( $tax, $args = array(
  \'hide_empty\' => false, 
  \'orderby\' => \'name\',
  \'order\' => \'ASC\', 
));
foreach( $terms as $term ) {
  if( 0 == $term->count )
    echo \' \';  
  elseif( $term->count > 0 )

    $cover   = get_field(\'cover\', $term );
    $time    = get_field(\'date\', $term );
    $pageone = get_field(\'starting_page\', $term);
    echo \'<li class="box-1-5 m-half"><a href="\'. $pageone .\'"><figure     style="background-image: url(\'. $cover .\');"></figure>\'. $term->name .\'<time>\'. $time .\'</time></a></li>\';;

}; ?>

</ul>   
我已经尝试了我所知道的每一种组合,但我似乎无法从每一种分类中找到第一篇文章的链接

1 个回复
SO网友:Tim Malone

如果我理解正确的话,您基本上是想从每个分类术语中获取一篇文章。然后获取该帖子的链接。

WP_Query 这里是你的朋友吗?通过自定义查询,你可以获得几乎任何你想要的条件的帖子(检查我链接到那里的文档,它们概述了你可以做的几乎所有事情)。

在这种情况下,标准是从某个术语中总共有一篇文章,按您希望定义的“第一篇”排序(我假设这是指最近的文章)。

你会看到这样的情况:

foreach( $terms as $term ) {

  $the_query = new WP_Query( array( 
    "posts_per_page" => 1,
    "orderby" => \'date\', // this is the default
    "order" => \'DESC\', // this is the default
    "tax_query" => array(
      array (
        \'taxonomy\' => $tax, // use the $tax you define at the top of your script
        \'field\' => \'term_id\',
        \'terms\' => $term->term_id, // use the current term in your foreach loop
      ),
    ),
  ) );

  $pageone = get_the_permalink($the_query->posts[0]);
需要记住的一件事是,将查询粘贴到另一个循环中可能会很快成为性能密集型的,因此如果您有数百个术语,则这不一定可以扩展。