Php 基于自定义选择字段统计帖子-wordpress

Php 基于自定义选择字段统计帖子-wordpress,php,wordpress,Php,Wordpress,我不知道我做错了什么 CMS=Wordpress 我有一个自定义的帖子类型和一个自定义的选择字段 自定义帖子类型名称为loford 元键为ptb_选择_1 有4个元值 选择_1 选择_2 选择_3 选择4 我需要创建一个短代码,计算有多少帖子具有select字段值“select_1” 这是我的代码,如果我排除meta_值,它就可以工作,,,但是无论我怎么努力,我都无法让它基于select字段值计数 function counting_shortcode( $atts ){ ob_st

我不知道我做错了什么

CMS=Wordpress

我有一个自定义的帖子类型和一个自定义的选择字段

自定义帖子类型名称为loford

元键为ptb_选择_1

有4个元值

  • 选择_1
  • 选择_2
  • 选择_3
  • 选择4
我需要创建一个短代码,计算有多少帖子具有select字段值“select_1”

这是我的代码,如果我排除meta_值,它就可以工作,,,但是无论我怎么努力,我都无法让它基于select字段值计数

function counting_shortcode( $atts ){
    ob_start();

    $args = array(
    'post_type'     => 'loford',
    'meta_key'      => 'ptb_select_1',
    'meta_value'    => 'select_1'
);


      // query
   $the_query = new WP_Query( $args );

     // counting the query
  echo $the_query->found_posts;

  $output = ob_get_clean();
  return $output;
}
add_shortcode( 'test3', 'counting_shortcode' );
出于测试目的,我创建了文本字段,它可以工作

而不是选择字段

有人能帮忙吗

谢谢

你可以这样做

函数计数\u post(){?>
//通过javasctipt获取droop down的值,并将其传递到post arg
选择
选择_1
选择_2
选择_3
选择4
函数值选择(){
var i=document.getElementById('select_val');
var p=i.options[i.selectedIndex].值;
location.href=“?p=“+p;
}
function count_post(){  ?>

   //get value of droup down by javasctipt and pass it into post arg

<select name="select_f" id="select_val" onchange="valueselect(this.value);">
        <option value="">select</option>
        <option value="select_1">select_1</option>
        <option value="select_2">select_2</option>
        <option value="select_3">select_3</option>
        <option value="select_4">select_4</option>
</select>

    <script type="text/javascript">
    function valueselect(){
        var i = document.getElementById('select_val');
        var p = i.options[i.selectedIndex].value;
        location.href="?p="+p;
    }
    </script>

    <?php
        $post_array = array('post_type'=>'post', 'posts_per_page'=>-1,'meta_key'=>'ptb_select_1','meta_value'=>$_REQUEST['p']);
        $cust_posts = new wp_query($post_array);
        echo "count post-> ".$cust_posts->found_posts;
    ?>
    <?php
    $output = ob_get_clean();
    return $output;
}

add_shortcode( 'get_count', 'count_post' );