Comparison operator

时间:2015-09-09 作者:kiarashi

我构建了一个下拉框,其中包含一系列比较字符串。

array(
        \'value\' => array(
            __( \'Equal\', \'js_composer\' ) => \'=\',
            __( \'Does not equal\', \'js_composer\' ) => \'!=\',
            __( \'Greater than\', \'js_composer\' ) => \'>\',
            __( \'Greater than or equal to\', \'js_composer\' ) => \'>=\',                    
            __( \'LIKE\', \'js_composer\' ) => \'LIKE\',
            __( \'NOT LIKE\', \'js_composer\' ) => \'NOT LIKE\',
            __( \'IN\', \'js_composer\' ) => \'IN\',
            // ...etc.
        ),          
    ),  

        if( $meta_query_value !== \'\' ) {
            $args[\'meta_query\'][] = array(
                \'key\'     => $mp_metakey,
                \'compare\' => $mp_comparison, 
                //\'compare\' => \'>=\',
                //\'compare\' => esc_attr( $mp_comparison ), 
                \'value\' => $value,
        );
      } 
我做了一个var_dump ($mp_compare); 这表明string(5) ">="

但没有帖子显示。当我使用\'compare\' => \'>=\', 直接,帖子确实会出现。

我确实注意到,当我使用“LIKE”、“NOT LIKE”、“IN”、“NOT IN”、“BETWEEN”、“NOT BETWEEN”、“EXISTS”时,就会出现帖子。

但当我选择常用的运算符“=”、“!=”、“>”、“>=”、“时<;\',\'<;=\'它不起作用。

我还尝试使用\'compare\' => esc_attr( $mp_comparison ), 但这也行不通。

有人有主意吗?

1 个回复
最合适的回答,由SO网友:Eric Holmes 整理而成

string(5) ">=" 我很担心。应该是这样的string(2) 难道不是吗?这感觉就像你&gt;= 而不是>=. 如果您正在执行var_dump 在基本HTML正文中,它将对您看到的内容进行编码。查看源代码或包装var_dump 在a中<pre> 标签,你应该看看发生了什么事。

试着去做html_entity_decode($mp_compare) 看看你得到了什么:)。

(将此移到答案,以便您可以结束问题)。

相关推荐