WordPress meta_query не работает должным образом

Я пытаюсь получить всплывающее окно, если URL текущей страницы находится в meta_key popup_display_pages. popup_display_pages — это массив.

Это не отображает купоны с добавленным meta_query. Я неправильно использую meta_query?

        <?php global $wp;
$currentURL = home_url( $wp->request );

$args = array (
'post_type' => 'popup',
'posts_per_page' => '-1',
'meta_query' => array(
array(
'key' => 'popup_display_pages',
'value' => $currentURL,
'compare' => 'IN'
)
)
);

$recent = new WP_Query($args); if($recent->have_posts()) :?>
<?php while($recent->have_posts()) : $recent->the_post();?>
<div class="coupon test">
<?php the_content();?>
</div>
<?php endwhile;
endif;?>

Редактировать 1

Var_Dump $ currentURL: string (31) «HTTP: // локальный: 8888 / тест-страницы«Var_Dump $ недавнего: https://hastebin.com/lihojohabi.cpp

Ответы на вопросы:

  1. Да, тип сообщения называется всплывающим
  2. Вот массив, сохраненный в meta_key popup_display_pages:

а: 2: {я: 0; s: 31:»HTTP: // локальный: 8888 / тест-страницы«; Я: 1; а: 1: {я: 0; s: 31:»HTTP: // локальный: 8888 / тест-страницы«;}}

0

Решение

В своем запросе вы запрашиваете посты типа popup, которые содержат www.domainname.example / your-current-path.

Но если ваша мета-ценность хранится как Http: //www.domainname.example/your-current-path/ там, вероятно, нет совпадений. (Обратите внимание на косую черту, например, и / или http: //).

Итак, var_dump $ currentUrl, чтобы проверить значение и узнать, что используется в вашем запросе, а затем проверить, соответствует ли это значение ожидаемому. Дополнительную информацию о создании вашего currentPath с помощью home_url можно найти здесь: https://codex.wordpress.org/Function_Reference/home_url

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]