Intereting Posts
query_post и wpdb возвращают разные результаты Хранить несколько текстовых данных в базе данных из метабокса Ограничить пользовательский гусеничный ход только передним концом Как получить все должности, назначенные только для таксономии? Какое действие / фильтр можно использовать для изменения отображаемой страницы? Как добавить локальных пользователей в WordPress без пароля по электронной почте? Список категорий вместо выпадающего меню в настройках администратора Доступ к корню сайта из папки тем обновление только одного настраиваемого мета поля Как изменить WordPress с помощью фильтра 'locale'? Плагин «Мета-бокс»: реализация мета-полей в пользовательском типе сообщений Создание шаблона страницы для отображения всех элементов из пользовательского типа сообщения страница результатов пользовательского поиска показывает одинаковые данные на всех страницах Сохраняется ли прежде, чтобы plugin.php раньше мог использовать get_plugin_data () раньше? Пользовательский цикл с несколькими таксономическими запросами

есть ли функция multisite, имеющая функции posts?

Мне нужна функция, которая проверяет, есть ли в posttype «события» сообщения на всех сайтах мультисайта в сети, если false ничего не делает, если true возвращает cross_events (); функция.

Solutions Collecting From Web of "есть ли функция multisite, имеющая функции posts?"

Существует нет, но вы можете использовать switch_to_blog() для переключения на определенный сайт, а затем использовать обычную функцию WordPress, чтобы проверить, существует ли какое-либо сообщение в типе сообщения или нет.

Например

 add_action('wp_loaded', 'wpse167721_check_networkwide_events'); function wpse167721_check_networkwide_events(){ global $wpdb; $original_blog_id = get_current_blog_id(); // get the original blog id // get network sites $args = array( 'network_id' => $wpdb->siteid, 'public' => null, 'archived' => null, 'mature' => null, 'spam' => null, 'deleted' => null, 'limit' => 100, 'offset' => 0, ); $sites = wp_get_sites($args); foreach($sites as $site){ // switch to blog switch_to_blog($site['blog_id']); if(!wpse167721_is_event_exists()) continue; // skip current iteration and go to the next one // Event exists! do whatever you want to do } // lets switch to our original blog switch_to_blog($original_blog_id); } function wpse167721_is_event_exists(){ $args = array( 'post_type' => 'event', // change the cpt name here 'posts_per_page' => 1, 'fields' => 'ids' ); return count(get_posts($args)); } 

Внимание! Этот код будет запускаться для каждого блога в сети при каждой загрузке страницы (потому что он подключен к wp_loaded ). Если у вас есть большая сеть, тогда рассмотрите пакетную обработку.

код не проверен