简码WP的类别属性

问题描述

我想根据帖子的类别和/或子类别用短代码显示帖子的内容

我有一个自定义帖子类型和一个自定义分类法(tab-manager-category)。帖子的主要类别是cat1,其子类别是subcat1。 在我的情况下,短代码应如下所示:[hk-serienausstattung tab-manager-category = cat1,subcat1]。如果我添加1分类法但不同时添加两个分类法(例如cat1,subcat1),则该代码有效。 如果我有2个标记为“ cat1”的帖子和一个子类别,并且尝试输入简码[hk-serienausstattung tab-manager-category = cat1],它也将不起作用。 目的是仅根据帖子的类别/子类别查看它们:

[hk-serienausstattung tab-manager-category = cat1,subcat1]

[hk-serienausstattung tab-manager-category = cat1,subcat2]

thx

add_shortcode( 'hk-serienausstattung','display_custom_post_type' );

function display_custom_post_type($atts){
    $atts = shortcode_atts( array(
    'tab-manager-category' => null
    ),$atts );

    //If category is multiple: 8,9,3
    $categories  = explode(',',$atts['tab-manager-category']);
    
    $args = array(
        'post_type' => 'produkt-tabs','post_status' => 'publish','orderby'       => 'title','order'         => 'ASC','posts_per_page'=> -1,'tax_query'     => array( array(
                            'taxonomy'  => 'tab-manager-category','field'     => 'name','operator'   => 'AND','terms'     => $categories

                        ) )
    );

    $string = '';
    $query = new WP_Query( $args );
    if( $query->have_posts() ){
        $string .= '<ul>';
        while( $query->have_posts() ){
            $query->the_post();
            $string .= '<div>' . apply_filters( 'the_content',get_the_content() ) . '</div>';
            $Meta = get_post_meta(get_the_id(),'');

        }
        $string .= '</ul>';
    }
    wp_reset_postdata();
    return $string;
}

编辑: 以下是根据简码显示的$ categories变量:

[hk-serienausstattung tab-manager-category="cat1,subcat1"] 
Array ( [0] => cat1 [1] => subcat1 ) 

[hk-serienausstattung tab-manager-category="cat1,subcat2"]
Array ( [0] => cat1 [1] => subcat2 )

[hk-serienausstattung tab-manager-category="cat1"]
Array ( [0] => cat1 )

[hk-serienausstattung tab-manager-category="subcat1"]
Array ( [0] => subcat1 )

[hk-serienausstattung tab-manager-category="subcat2"]
Array ( [0] => subcat2 )

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)