WP_query и апостроф
$line[0]="Santa's Wild Ride";
$query = new WP_Query(array('post_type'=>'it_games',
'tax_query' => array(
array(
'taxonomy' => 'game_name',
'field' => 'name',
'terms' => stripslashes_deep($line[0])
)
)
));
$id=0;
if($query->have_posts()) $id=$query->post->ID;
echo $id;
Если термин таксономии содержит символы: ‘, (, ) посты не находит, хотя они есть, я вижу в панели.
С остальными терминами работает.
Когда я привязываю пост к такому термину - операция проходит успешно. И в базе этот термин с апострофом появляется.
Я как-то не правильно стрипаю слешы? Или апостроф придется убрать? Есть ли способ оставить его в таксе? Так же со скобками.
stripslashes_deep() тут ничего не дает. Скорее наоборот можно попробовать добавить слэши: addslashes($line[0]).
Вот оно че оказалось:
https://wordpress.org/support/topic/wp_query-does-not-fetch-posts/
Ну и stripslashes соответственно убрал.
Так, и что, этот фильтр помог?
// fix tax_query bug that double escapes name terms add_filter('pre_term_name', function( $term ) { return stripslashes( $term ); }, 40 );Опасный он какой-то...
Да помог.
Я даже не пытаюсь сейчас изучать ядро. Так что принял как есть и фиг с ним.