对于wordpress shortcode中的自定义元字段值,允许在shortcode中使用多个值

对于wordpress shortcode中的自定义元字段值,允许在shortcode中使用多个值,wordpress,shortcode,custom-fields,Wordpress,Shortcode,Custom Fields,我有一个短代码,如果我把“rank”的单个值放在短代码中,它可以正常工作 [coach_list category=“dummy”number=“3”rank=“2”] 但是我想以[coach_list category=“dummy”number=“3”rank=“2”,“6”的形式传递“rank”中的多个值 “rank”是与post关联的数字类型自定义字段 在过去的两天里,我在网上搜索了很多,但没有找到结果。请告诉我哪里出了错 下面是我创建的一段短代码: $args = array(

我有一个短代码,如果我把“rank”的单个值放在短代码中,它可以正常工作

[coach_list category=“dummy”number=“3”rank=“2”]

但是我想以[coach_list category=“dummy”number=“3”rank=“2”,“6”的形式传递“rank”中的多个值

“rank”是与post关联的数字类型自定义字段

在过去的两天里,我在网上搜索了很多,但没有找到结果。请告诉我哪里出了错

下面是我创建的一段短代码:

$args = array(
        'number' => '-1',
        'orderby' => 'id',
        'order' => 'desc',
        'category' => '',
        'meta_key'    => '', 
        'rank'  => '', 

    ), $atts )
);

 global $post;


  $html = "";
  $my_query = new WP_Query( array('post_type' => 'post',
       'posts_per_page' => $number, 'orderby' => $orderby, 'order' => $order, 'category' =>$category, 'meta_key' => 'rank', 'meta_value' =>  $rank ));

  if( $my_query->have_posts() ) : while( $my_query->have_posts() ) : $my_query->the_post();

我会选择
[coach\u list category=“dummy”number=“3”rank=“2,6”]

然后你可以制作一个数组,
$ranks=explode(',',$rank)

函数我的快捷码($atts){
提取(短码_atts($args=array(
'编号'=>'-1',
'orderby'=>'id',
“订单”=>“描述”,
'类别'=>'',
“元密钥”=>“”,
'排名'=>'',
)美元(附件);;
$ranks=分解(“,”,$rank);
$html=“
    ”; $my_posts=获取_posts(数组)( “post_type”=>“post”, “每页帖子数”=>$number, 'orderby'=>$orderby, “订单”=>$order, “类别”=>$category, “元查询”=>数组( 'key'=>'rank', “值”=>$RANGS, '比较'=>'输入' ) )); foreach($rankpost作为我的帖子){ $html.='
  • '.$rankpost->ID.:'.获取标题($rankpost->ID)。'-Rank:'.获取帖子元($rankpost->ID,'Rank',true)。'
  • '; } $html.='
'; 返回$html; }

或者你可以创建一个查询,给出所有排名为2和/或6的帖子。

我会选择
[coach\u list category=“dummy”number=“3”rank=“2,6”]

然后你可以制作一个数组,
$ranks=explode(',',$rank)

函数我的快捷码($atts){
提取(短码_atts($args=array(
'编号'=>'-1',
'orderby'=>'id',
“订单”=>“描述”,
'类别'=>'',
“元密钥”=>“”,
'排名'=>'',
)美元(附件);;
$ranks=分解(“,”,$rank);
$html=“
    ”; $my_posts=获取_posts(数组)( “post_type”=>“post”, “每页帖子数”=>$number, 'orderby'=>$orderby, “订单”=>$order, “类别”=>$category, “元查询”=>数组( 'key'=>'rank', “值”=>$RANGS, '比较'=>'输入' ) )); foreach($rankpost作为我的帖子){ $html.='
  • '.$rankpost->ID.:'.获取标题($rankpost->ID)。'-Rank:'.获取帖子元($rankpost->ID,'Rank',true)。'
  • '; } $html.='
'; 返回$html; }

或者你可以创建一个查询,给出所有排名为2和/或6的帖子。

您好,谢谢,但现在它显示了与数组中最后一个排名相关的帖子。如果我运行[coaches\u list category=“dummy”number=“3”rank=“2,6”]它会显示与“6”相关的帖子“$my\u query->the\u post()””之后你在做什么?我尝试了使用
meta\u query
的其他方法。现在更好了?提取(短码地址($args=array('number'=>'-1','orderby'=>'id','order'=>'desc','category'=>'','meta'=>'','rank'=>'',$atts));全球$员额$html=“”;$ranks=分解(“,”,$rank);foreach($ranks as$rank)$my_query=new WP_query(数组('post_type'=>'post','posts_per_page'=>$number,'orderby'=>$orderby,'order'=>$order,'category'=>$category,'meta_key'=>'rank','meta u value'=>$rank));如果($my_query->have_posts()):而($my_query->have_posts()):$my_query->the_post();您好,谢谢,但现在它显示了与数组中给出的最后一个排名相关联的帖子。如果我运行[coaches\u list category=“dummy”number=“3”rank=“2,6”]它会显示与“6”相关的帖子“$my\u query->the\u post()””之后你在做什么?我尝试了使用
meta\u query
的其他方法。现在更好了?提取(短码地址($args=array('number'=>'-1','orderby'=>'id','order'=>'desc','category'=>'','meta'=>'','rank'=>'',$atts));全球$员额$html=“”;$ranks=分解(“,”,$rank);foreach($ranks as$rank)$my_query=new WP_query(数组('post_type'=>'post','posts_per_page'=>$number,'orderby'=>$orderby,'order'=>$order,'category'=>$category,'meta_key'=>'rank','meta u value'=>$rank));如果($my_query->have_posts()):而($my_query->have_posts()):$my_query->the_post();
function my_shortcode($atts){
  extract(shortcode_atts( $args = array( 
    'number' => '-1', 
    'orderby' => 'id', 
    'order' => 'desc', 
    'category' => '', 
    'meta_key' => '', 
    'rank' => '', 
  ),$atts)); 

  $ranks = explode(',',$rank); 
  $html = '<ul>';

  $my_posts = get_posts(array(
    'post_type' => 'post',
    'posts_per_page' => $number, 
    'orderby' => $orderby, 
    'order' => $order, 
    'category' =>$category, 
    'meta_query' => array(
        'key'=>'rank',
        'value'=>$ranks,
        'compare'=>'IN'
    )
  ));

  foreach($my_posts as $rankpost){
    $html .= '<li>'.$rankpost->ID.': '.get_the_title($rankpost->ID).' - Rank: '.get_post_meta($rankpost->ID,'rank',true).'</li>';
  }
  $html .= '</ul>';
  return $html;
}