Intereting Posts
WordPress <! – больше -> добавление к моему якорю для добавления WP Query работает вне функции, а не внутри функции Меню дочерней страницы в боковой панели Удалить «показать кнопки совместного доступа» метабокс JetPack из пользовательского типа сообщения Включение внешнего файла в сообщение (и использование обработанных путей) Что такое meta_id В wp_postmeta? Полностью удалить URL автора WordPress Frontend Post Form (Bootstrap Modal) Не создает сообщение Как подключить одну персонализированную почту post-types к другому? Пользовательские типы сообщений. Есть ли недостатки / преимущества в использовании плагина для их разработки? Статическая страница для рабочего стола или мобильного телефона Страница поиска Не работает страница Скопировать настройки виджетов из одного блога в другой Как использовать переменные из виджетов на других страницах? Как предотвратить редактирование метаданных в сообщении?

get_previous_post в тех же категориях

У меня есть должность в двух категориях: 1 и 2.

Я хочу получить предыдущий пост в двух категориях: 1 и 2.

get_previous_post(true); 

С этим кодом я получаю предыдущий пост в категории 1 или 2.

Есть идеи?

Solutions Collecting From Web of "get_previous_post в тех же категориях"

get_previous_post использует get_adjacent_post() которого есть куча фильтрующих крючков, которые вы можете использовать, но гораздо более простой подход – создать вашу собственную функцию, что-то вроде этого:

 // Create a new filtering function that will add our where clause to the query function date_filter_where( $where = '' ) { global $post; $where .= " AND post_date >= '".$post->post_date."'"; return $where; } //then create your own get previous post function which will take an array of categories eg: // $cats = array('1','2'); function my_get_previous_post($cats){ global $post; $temp = $post; $args = array( 'posts_per_page' => 1, 'post_type' => 'post', 'post_status' => 'publish', 'category__and' => $cats ); add_filter( 'posts_where','date_filter_where' ); $q = new WP_Query($args); remove_filter( 'posts_where','date_filter_where' ); while ($q->have_posts()){ $q->the_post; echo '<a href="'.get_permalink($post->ID).'">'.get_the_title($post->ID).'</a>'; } $post = $temp; wp_reset_query(); }