Wordpress meta_query中的撇号问题



我已经看到了这个问题,但我似乎找不到适合我的解决方案。我正在尝试根据article_tag过滤帖子,除了带有撇号的帖子外,所有帖子都可以工作。

这是我的选择代码:

<select name='tagFilter'>
<option value="Lead" <?php echo display_selected($tag, "Lead Story");?>>Lead Story</option>
<option value="Executive Corner" <?php echo display_selected($tag, "Executive Corner");?>>Executive Corner</option>
<option value="Executive Highlight" <?php echo display_selected($tag, "Executive Highlight");?>>Executive Highlight</option>
<option value="What's New" <?php echo display_selected($tag, "What's New");?>>What's New</option>
</select>

我像这样设置$tag变量:

$tag='';
if( !empty( $_GET['tagFilter'])){
$tag = $_GET['tagFilter'];
}

这是我的查询:

$tag_query = array('relation' => 'AND');
if(!empty($tag)){
array_push($tag_query, array(
'key' => 'article_type',
'value' => $tag,
'compare' => '='
));
}   
$filter_query_args = array(
'post_type' => 'vbc_news_blog',
'post_status' => 'published',
'orderby' => 'date',
'paged' => $paged,
'date_query' => $date_query,
'meta_query' => $tag_query
);
$filterQuery = new WP_Query( $filter_query_args );

我尝试过添加斜杠和条形斜杠(我真的不知道这些是如何工作的,我只是在环顾四周时看到了这些解决方案(,但这些并没有做任何事情。有人有什么建议吗?

我认为您正在寻找wordpresssanitize_text_field( string $str )功能。

function sanitize_text_field( $str ) {
$filtered = _sanitize_text_fields( $str, false );
/**
* Filters a sanitized text field string.
*
* @since 2.9.0
*
* @param string $filtered The sanitized string.
* @param string $str      The string prior to being sanitized.
*/
return apply_filters( 'sanitize_text_field', $filtered, $str );
}

这是文档的链接,https://developer.wordpress.org/reference/functions/sanitize_text_field/

最新更新