Цикл WP с указанием метки постов

199
12 марта 2018, 00:25

В настройках виджета вывода постов для WP есть опция для указания меток записи. Переменная для нее назначается так: $tags = $instance['tags']; . В админке выводится так:

<p>
    <label for="<?php echo esc_attr($this->get_field_id( 'tags' )); ?>">
        <?php _e('Метки:', 'site'); ?>
    </label>
    <input id="<?php echo esc_attr($this->get_field_id( 'tags' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'tags' )); ?>" value="<?php echo ($instance['tags']); ?>" style="width:100%;" />
</p>

Главное - value="<?php echo ($instance['tags']); ?>". В результате отображается строка для ввода id меток через запятую. В цикле используется такая конструкция для вывода постов:

$site_posts = new WP_Query(array( 'cat' => $categories, 'tag__in' => array($tags), 'posts_per_page' => $number, 'offset' => $paged_offset, 'paged'=>$paged ));

То есть используется 'tag__in' => array($tags), которая выводит записи если они принадлежат хотя бы одной из указанных меток. Почему-то если я в настройках указываю id нескольких меток через запятую, то выводятся посты, принадлежащие только к одной метке, указанной первой. Перепробовал много вариантов, но не работает ни один. Хотелось бы, чтобы выводились посты из всех указанных меток. Можно это сделать?

Answer 1

Если $instance['tags'] - строка c id меток через запятую, то преобразовывать её в массив надо так:

$tags = explode( ',', $instance['tags'] );

и использовать так:

$site_posts = new WP_Query(array( 'cat' => $categories, 'tag__in' => $tags, 'posts_per_page' => $number, 'offset' => $paged_offset, 'paged'=>$paged ));
READ ALSO
В чём разница в регулярных выражениях?

В чём разница в регулярных выражениях?

Есть регулярка* https://regex101

202
HTML Dom parser, парсинг значения переменной JS

HTML Dom parser, парсинг значения переменной JS

Подскажите пожалуйста, как при помощи библиотеки указанной в заголовке можно выдернуть ссылку из javascript кода, вот пример :

201
get response что это/ FireBug

get response что это/ FireBug

Включаю FireBug(плагин в хроме) захожу на сайт и в FireBug вижу :Вопрос, это GET ответ сайта? Как мне средствами PHP можно перехватить этот параметр?

178
Почему не работает следующий код? - PDO::, PHP

Почему не работает следующий код? - PDO::, PHP

Страница просто обновляется без внесения изменения в базу, при INSERT все благополучно вносится, учусь, могу упустить даже самую банальную ошибкуЗаранее...

137