使用变量时in_array函数不起作用?

时间:2017-04-23 05:17:21

标签: php wordpress

在我的下面的代码中,我试图检查$query['skill']中是否包含$c_skills值。然而它一直在失败。当我使用我正在寻找的实际字符串时,例如"test"然后它按预期运行。我唯一的想法是$query['skill']可能不会以字符串形式返回,但我无法找到var_dump,因为我正在使用wordpress而我正在更改代码以实现ajax查询。

global $user_ID;
$query = $_REQUEST['query'];

if (isset($_REQUEST['query']['skill'])) {
    if (isset($query['skill']) && $query['skill'] != '') {

global $wp_query, $ae_post_factory, $post, $current_user;
$post_object = $ae_post_factory->get(PROFILE);
$profile_id = get_user_meta( $user_ID, 'user_profile_id', true);
$profile = array('id' => 0, 'ID' => 0);
if($profile_id) {
    $profile_post = get_post( $profile_id );
    if($profile_post && !is_wp_error( $profile_post )){
        $profile = $post_object->convert($profile_post);
    }
}
$current_skills = get_the_terms( $profile, 'skill' );

if (!empty($current_skills)) {
    $c_skills = array();
    foreach ($current_skills as $key => $value) {
                $c_skills[] = $value->name;
            };

    if(in_array( $query['skill'], $c_skills )) {
        $query_args['tax_query'] = array(
                        'skill' => array(
                            'taxonomy' => 'skill',
                            'terms' => 'test',
                            'field' => 'slug'
                        )
                );
    }
}

1 个答案:

答案 0 :(得分:0)

我认为您的问题来自$query_args['tax_query']

对我来说,Key(技能)在这里无关。

尝试使用

简化
$query_args['tax_query'] = array(
     array(
            'taxonomy' => 'skill',
            'terms' => 'test',
            'field' => 'slug'
      )
);

如果要查询多个分类,则可以将两个数组之间用于技能的位置用于关系。

希望它能在此之后起作用。