我正在try 创建一个"类别"页面,其中显示我的所有类别以及该类别的图像.这个页面不是静态的,我想浏览该类别的最新帖子特色图片,并将其用作类别图片.

我下面的代码很有用,它可以浏览最新的特色图片,但它似乎不是特定于类别的(它只是浏览最新的).

为了澄清我使用的是自定义帖子类型和自定义分类法:

帖子类型:图库

    <?php
    $limit      = 999;
    $counter    = 0;
    $cats = get_terms([
        'taxonomy' => 'categories',
        'hide_empty' => false,
    ]);

    foreach ($cats as $cat):
        if ($counter < $limit) {
            $args  = array(
                'posts_per_page' => 1,
                'post_type'   => 'gallery',
                'taxonomy' => 'categories',
                'cat' => $cat->cat_ID,
                'ignore_sticky_posts' => 1
            );
            $posts = get_posts($args);
            if ($posts) {
                    echo '<div class="col-md-3 category-list">';
                    while( have_posts() ) : the_post();
                    echo '<a href="' . get_category_link($cat->term_id) . '" ' . '><div class="cat-list-img">';
                    the_post_thumbnail();
                    echo '<h5 class="cl-title">' . $cat->name . '</h5>';
                    echo '</div></a>';
                    echo '</div>';
                    endwhile;
            }
        }

    $counter++;
    endforeach;
    ?>

由于一些帖子共享同一类别,如果我可以避免每个帖子都使用同一个帖子,而是从下一篇帖子中获取图像(而不是复制),那就太好了,但我不知道如何做到这一点,所以我甚至没有try 过——如果这比听起来容易,那么如果你也能为我指出正确的方向,那就太好了.

推荐答案

没有您的帖子类型或分类法,很难测试这是否有效.然而,这应该是可行的.

正如注释中所述,您需要使用get\u the\u ID(),我还认为您需要get_term_link函数,而不是get_category_link函数,因为post分类法category是默认的WordPress类别分类法.

$limit   = 999;
$counter = 0;
$cats    = get_terms(
    array(
        'taxonomy'   => 'categories',
        'hide_empty' => false,
    )
);

foreach ( $cats as $cat ) :
    if ( $counter < $limit ) {
        $args    = array(
            'posts_per_page'      => 1,
            'post_type'           => 'gallery',
            'ignore_sticky_posts' => 1,
            'tax_query'           => array(
                array(
                    'taxonomy' => 'categories',
                    'terms'    => $cat->term_id,
                    'field'    => 'term_id',
                ),
            ),
        );
        $results = new WP_Query( $args );
        if ( $results->have_posts() ) {
            echo '<div class="col-md-3 category-list">';
            foreach ( $results->get_posts() as $the_post ) :
                echo '<a href="' . esc_url( get_term_link( $cat->term_id, 'categories' ) ) . '"><div class="cat-list-img">';
                $image = get_the_post_thumbnail( $the_post->ID, 'medium' ); // replace with whatever size you want here.
                echo $image;
                echo '<h5 class="cl-title">' . esc_attr( $cat->name ) . '</h5>';
                echo '</div></a>';
                echo '</div>';
            endforeach;
        }
    }

    $counter++;
endforeach;

Php相关问答推荐

在不刷新页面的情况下无法使用JQuery更新id

在WooCommerce中处理客户总支出中的退款

dockerized laravel服务器拒绝POST请求

WooCommerce基于元数据的自定义范围目录排序

将产品类别添加到WooCommerce产品附加信息

为什么在我的PHP联系人脚本中开机自检后出现未定义变量错误?

我必须对所有的SQL查询使用预准备语句吗?

带Redhat php curl的http_code 0

使用DOMPDF获取PDF格式的本 map 像

为什么WooCommerce的动作钩子';woocommerce_checkout_update_order_review';包含旧信息?

在WooCommerce存档页面中显示可变产品的库存变化属性

除WooCommerce中的特定国家/地区外,有条件地要求填写邮政编码 checkout 字段

调用模型[App\Models\Employee]上未定义的关系[title]

在 Heroku 上部署 Sylius - 路由不正确

通过存储库检索 Blade 上的单值数据 出错

WooCommerce – 在新订单邮箱通知中显示产品分类计数

如何在构建 PHP 类别数组树的递归函数中将父面包屑传递给子项?

同时执行odbc_execute、odbc_fetch_row和odbc_result

遇到特定键时修改二维数组以创建嵌套数据集

基于其他数组创建多维数组 struct