根据其等效ID显示类别名称

时间:2022-01-04 作者:latif tahta

我有一个带有选项的主题。我想为一个特定的woocommerce类别显示3篇帖子,我可以显示类别id,但我不知道如何根据其类别id显示产品,但我有代码片段,它按woocommerce类别名称显示产品。所以我现在需要一个选定的类别名称而不是其id,或者将其从类别id转换为类别名称?

我试着跟随,但根本不起作用。任何帮助都会很感激的,我这两天都在苦苦挣扎。

$slidecat =theme_get_option(\'theme_slide_categories\');
        $args = array( 
\'post_type\' => \'product\', 
\'posts_per_page\' => 3,
\'product_cat\' => \'burger\', 
\'orderby\' =>\'date\',
\'order\' => \'ASC\' );
      $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
    global $product;
    the_title(); ?>
    
    <?php endwhile;
    wp_reset_query(); ?>
当我回显$slidecat时,它显示的cat id为;汉堡;这是16。

选项区域

$options[] = array( \'name\' => __(\'Slider Category\', \'theme\'),
                \'desc\' => __(\'Select a category for the featured post slider\', \'theme\'),
                \'id\' => \'theme_slide_categories\',
                \'type\' => \'select\',
                \'class\' => \'hidden\',
                \'options\' => $options_categories);
我希望我在这里提供的代码足以获得帮助。谢谢大家

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

将其从类别id转换为类别名称

当我回显$slidecat时,它显示的cat id为;汉堡;这是16

您可以使用get_term_field() 按ID获取术语/类别slug:

// Get the slug and then pass it to WP_Query.
$cat_slug = get_term_field( \'slug\', $slidecat, \'product_cat\' );

$args = array(
    \'post_type\'      => \'product\',
    \'posts_per_page\' => 3,
    \'product_cat\'    => $cat_slug,
    \'orderby\'        => \'date\',
    \'order\'          => \'ASC\'
);
或者您可以将类别ID传递给WP_Query 使用taxonomy query, 像这样:

$args = array(
    \'post_type\'      => \'product\',
    \'posts_per_page\' => 3,
//  \'product_cat\'    => \'burger\', // don\'t set product_cat
    \'tax_query\'      => array(
        array(
            \'taxonomy\' => \'product_cat\',
            \'terms\'    => $slidecat,
            \'field\'    => \'term_id\',
        ),
    ),
    \'orderby\'        => \'date\',
    \'order\'          => \'ASC\'
);
此外,您应该更换wp_reset_query() 在代码中使用wp_reset_postdata() 因为只有在修改了WordPress主查询(例如,如果您调用query_posts() 这应该避免)。

相关推荐

Huge wp_options table

我有一个WP网站的问题。由于没有更多可用磁盘空间,网站崩溃。搜索时,我检测到wp\\U选项表大小为12GB,但大约只有1100行:有什么想法吗?提前感谢[UPDATE 1]如果我导出wp\\U选项表,拖放并导入,大小将减少到9,7mb:我没有机会用优化表OPTIMIZE TABLE wp_options 但如果再发生的话我会试试的[UPDATE 2]问题仍然存在。我试着OPTIMIZE TABLE wp_options;无结果: