如何获取某个类别中最后一篇帖子的特色图片?

时间:2019-03-25 作者:supershivas

我有以下代码,希望添加选定的特色图像

    $arg = array(
       \'orderby\'    => \'date\',
       \'number\'     => 10,
    );
    $categories = get_categories($arg);
    foreach ($categories as $cat) {
         echo \'<li>\';
         echo \'<figure>
                <a href="?catId=\'.$cat->cat_ID.\'">\';
                   //Add featured image from the last post??
                    get_last_post_image($cat->name);
        echo \'</a>
             </figure>\';
         </li>\';
      } 
我有这个功能:

function get_last_post_image($cat_name){
    $args = array(
        \'category_name\' => \'$cat_name\',
        \'posts_per_page\' => 1,
        \'order_by\' => \'date\',
        \'order\' => \'desc\'
    );
    $post = get_posts( $args );
    if($post) {
        $post_id = $post[0]->ID;
        if(has_post_thumbnail($post_id)){
            echo get_the_post_thumbnail($page->ID, \'thumbnail\');
        }
    }
}
但不会显示特色图像。

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

在函数末尾更正代码中的这一行。

echo get_the_post_thumbnail($page->ID, \'thumbnail\');
应该是

echo get_the_post_thumbnail($post_id, \'thumbnail\');
也按照Wordpressdocumentation, category_name 参数应为表示类别的字符串slug, 不name.

因此,完整的代码应该如下所示:

    $arg = array(
       \'orderby\'    => \'date\',
       \'number\'     => 10,
    );
    $categories = get_categories($arg);
    echo \'<ul>\';

    foreach ($categories as $cat) {
         echo \'<li>\';
         echo \'<figure>
                <a href="?catId=\'.$cat->term_id.\'">\'; // not cat_ID
                   //Add featured image from the last post??
                    get_last_post_image($cat->slug);
        echo \'</a>
             </figure>
         </li>\';
      } 
    echo \'</ul>\';
以及功能:

function get_last_post_image($cat_slug){
    $args = array(
        \'category_name\' => $cat_slug, // it should be slug of category, not name.
        \'posts_per_page\' => 1,
        \'order_by\' => \'date\',
        \'order\' => \'desc\'
    );
    $post = get_posts( $args );
    if($post) {
        $post_id = $post[0]->ID;
        if(has_post_thumbnail($post_id)){
            echo get_the_post_thumbnail($post_id, \'thumbnail\');
        }
    }
}

相关推荐

Post in multiple categories

我尝试在多个类别中列出帖子。管理面板中一切正常。我进入所有帖子,选择所需的帖子,然后进入编辑并选择一个类别。保存更改后,在“类别”选项卡下会写入旧类别和新类别。现在,当我访问网站并选择更新类别时,只有旧帖子,没有新帖子。例如:我有类别:电影、游戏、最佳和帖子:最佳电影、最佳游戏、最佳,我需要这样:最佳电影属于电影类别最佳游戏属于游戏类别,两者都属于最佳类别我使用日期和职位名称作为永久链接。