Php 如何在Wordpress中添加具有多个值的shortcode属性?

Php 如何在Wordpress中添加具有多个值的shortcode属性?,php,wordpress,Php,Wordpress,如何向Wordpress shortcode函数添加具有多个值的属性?确切地说,我想添加带有选项(值)asc或desc的'order'属性,这样我就可以在诸如[reviews\u category id=1 tag=25 order=asc]或order=desc 到目前为止,我所想的是增加 'orderby' => 'taxonomy_cat', 'order' => desc 这会进行排序,但不允许我使用asc或desc作为排序方向来设置使用短代码内的属性。它仅

如何向Wordpress shortcode函数添加具有多个值的属性?确切地说,我想添加带有选项(值)
asc
desc
'order'
属性,这样我就可以在诸如
[reviews\u category id=1 tag=25 order=asc]或
order=desc

到目前为止,我所想的是增加

    'orderby' => 'taxonomy_cat',
    'order' => desc
这会进行排序,但不允许我使用
asc
desc
作为排序方向来设置使用短代码内的属性。它仅按
desc

我的职能是:

function review_category_func($atts) {
    $taxID = intval($atts["id"]);
    $ppp = intval($atts["posts_per_page"]);
    $output = '';

    $args = array(
        "post_type" => "reviews",
        "posts_per_page" => $ppp,
        'tax_query' => array(
            array(
                'taxonomy' => 'review_category',
                'id' => 'term_id',
                'terms' => $taxID
            )
        ),
        'orderby' => 'taxonomy_cat',
        'order' => desc
);
    if (isset($atts['tag'])) {
        $terms = explode(',', $atts['tag']);
        $args['tax_query']['relation'] = 'AND';
        $args['tax_query'][] = array(
                'taxonomy' => 'review_sources',
                'id' => 'term_id',
                'terms' => $terms
            );
    }

    $qry = new WP_Query( $args );

//the rest of the code here....

//ends here

    <?php
    }

    wp_reset_query();

    return $output;
}

add_shortcode("review_category", "review_category_func");
function review\u category\u func($atts){
$taxID=intval($atts[“id”]);
$ppp=intval($atts[“每页帖子]);
$output='';
$args=数组(
“帖子类型”=>“评论”,
“每页帖子”=>$ppp,
“tax_query”=>数组(
排列(
“分类法”=>“审查类别”,
'id'=>'term_id',
“条款”=>TAXD美元
)
),
'orderby'=>'taxonomy\u cat',
“订单”=>desc
);
如果(isset($atts['tag'])){
$terms=explode(“,”,$atts['tag']);
$args['tax_query']['relation']='和';
$args['tax_query'][]=数组(
“分类法”=>“审查来源”,
'id'=>'term_id',
“术语”=>$terms
);
}
$qry=新的WP\U查询($args);
//这里的其余代码。。。。
//到此为止

您需要使用
shortcode\u atts()
,正如codex中所解释的:

然后清理变量,如:

$orderby = esc_attr( $args['orderby'] );

那么,用短代码中的属性值替换static
desc
——这到底有什么问题?您已经在这里访问短代码的其他属性了,所以…?
$orderby = esc_attr( $args['orderby'] );