【问题标题】:Wordpress Wp_Query search with meta_query and apostrophe in value带有 meta_query 和撇号的 Wordpress Wp_Query 搜索
【发布时间】:2020-06-21 09:38:20
【问题描述】:

我正在使用名称中包含 ' 的 meta_query 值执行 Wp_Query。例如“角落的”。 wp_query 的参数数组看起来像

$location_array = array(
                    'key'     => 'hidden_address',
                    'value'   => stripslashes ( sanitize_text_field( $_GET['adv_location'] ) ),
                    'compare' => 'LIKE',
                    'type'    => 'char',
            );

但是在搜索 "Corner's" 时查询返回 0 个结果。对于“角”返回正确的结果。

【问题讨论】:

  • 您是否检查过1.$_GET['adv_location'] 中的值是什么以及2. 撇号是如何存储在数据库中的?您正在使用sanitize_text_field,它应该适用于纯文本,因此很可能在此过程中某处使用了其他编码。
  • 谢谢 - 你为我指明了正确的方向。

标签: wordpress


【解决方案1】:

post meta 被保存为 Corner's - 所以解决方案是使用 htmlspecialchars

    $value  =   stripslashes ( sanitize_text_field( $_GET['adv_location'] ) );
    $value  =   htmlspecialchars($value,ENT_QUOTES );
    $location_array = array(
                    'key'     => 'hidden_address',
                    'value'   =>  $value,
                    'compare' => 'LIKE',
                    'type'    => 'char',
            );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多