Я просто не могу найти ответ, и не могу найти похожие статьи для своих конкретных случаев (или я нашел, но не узнал их).Фильтр Wordpress pre_get_posts с расширенными настраиваемыми полями
Итак, у меня есть обычные сообщения в блоге, и у меня есть собственное имя поля «тег», где у меня есть только одно слово «музыка» (тег - это текстовый тип).
Мой PHP для выбора всех сообщений, которые имеют «музыку» в «метке» является:
add_filter('query_vars', function($vars) {
$vars[] = 'tag';
return $vars;
});
add_action('pre_get_posts', function ($query) {
if (!empty($_GET)) {
if ($tag = get_query_var('tag', false)) {
$meta_query[] = array(
'key' => 'tag',
'value' => $tag,
'compare' => '='
);
}
$query->query_vars['meta_query'] = $meta_query;
}
}, 1);
Теперь, когда я ввожу URL, например: локальный/MyBlog/тег = музыка ни один из постов не показывая, даже у меня есть несколько сообщений с «музыкой» в поле «тег». Сначала я хотел бы получить решение для этого простого случая, потому что я duno, что я делаю неправильно.
Кроме того, я хотел бы решить, хочу ли я сделать несколько значений в текстовом поле «тег», например: «музыка, фильм, поп, жизнь», поэтому, когда люди печатают в «жизненном фильме», они получают все сообщения с эти конкретные области. Спасибо и жаль, что большая стена текста, чем ожидалось. Любая помощь будет назначена.
благодарит вас за ответ, но все еще не работает, ни один из примеров. Теперь у меня нет регистрации вручную для acf внутри моих functions.php, я просто добавил их через панель администратора, возможно, мне нужно их зарегистрировать ..? Извините за то, что беспокоило вас, это кажется достаточно простым, но просто не работает для меня. –