Intereting Posts
Изменение базы данных: пользователи, голосовавшие jQuery формы и обновления информации Синхронизация сообщений и носителей автоматически между экземплярами WordPress Получить зарегистрированную страну или IP-адрес Нужно ли нам избегать данных, которые мы получаем из параметров темы? wp_verify_nonce продолжает сбой Предотвращение чтения роли других Мне нужно значение сохраненной мета для отображения рядом с сообщением, которое оно связано с Запрос последних изображений в нескольких сообщениях Почему я получаю «wp_remote-get: не удалось обработать for fopen ()»? WP REST API V2 – добавление данных пользователя в ответ Последние сообщения и первые Показать все месяцы с сообщениями и внутри каждого месяца показать 5 последних сообщений Прикрепление данных таксономии для публикации с помощью wp_insert_post Показывать, когда пользователь находится в режиме онлайн / офлайн в режиме реального времени на user_profile.php

Как перечислить все сетевые сайты на одной странице

Можно ли перечислить все блоги в моей сети на одной странице?

Solutions Collecting From Web of "Как перечислить все сетевые сайты на одной странице"

да, небольшой источник для шаблона.

<ul class='postlist no-mp'> <?php /** * Old version, change on 07/23/2013 * $blogs = $wpdb->get_results( "SELECT blog_id,path FROM {$wpdb->blogs} WHERE blog_id != {$wpdb->blogid} AND site_id = '{$wpdb->siteid}' AND spam = '0' AND deleted = '0' AND archived = '0' order by blog_id", ARRAY_A ); */ // get all blogs $blogs = get_blog_list( 0, 'all' ); if ( 0 < count( $blogs ) ) : foreach( $blogs as $blog ) : switch_to_blog( $blog[ 'blog_id' ] ); if ( get_theme_mod( 'show_in_home', 'on' ) !== 'on' ) { continue; } $description = get_bloginfo( 'description' ); $blog_details = get_blog_details( $blog[ 'blog_id' ] ); ?> <li class="no-mp"> <h2 class="no-mp blog_title"> <a href="<?php echo $blog_details->path ?>"> <?php echo $blog_details->blogname; ?> </a> </h2> <div class="blog_description"> <?php echo $description; ?> </div> <?php query_posts( 'showposts=5' ); if ( have_posts() ) : while( have_posts() ) : the_post(); ?> <div class="blog_post"> <div class="post_title"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </div> <div class="post_excerpt"> <?php the_excerpt(); ?> </div> </div> <?php endwhile; ?> <?php endif; restore_current_blog(); ?> </li> <?php endforeach; endif; ?> </ul> 

Это напечатает неупорядоченный список всех открытых сайтов в многоузловой сети:

 $bcount = get_blog_count(); global $wpdb; $blogs = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->blogs WHERE spam = '0' AND deleted = '0' and archived = '0' and public='1'")); if(!empty($blogs)){ ?><ul class="menu"><?php foreach($blogs as $blog){ $details = get_blog_details($blog->blog_id); if($details != false){ $addr = $details->siteurl; $name = $details->blogname; if(!(($blog->blog_id == 1)&&($show_main != 1))){ ?> <li class="menu-item<?php if($counter == get_current_blog_id()){ echo ' current-menu-item';}?>"> <a href="<?php echo $addr; ?>"><?php echo $name;?></a> </li> <?php } } } ?></ul><?php } 

Это решение, написанное на основе идеи Тома Джейнэлла и ответа. Он распечатывает отсортированный список всех сайтов в WordPress Multisite, как простую строку (разделенную трубой).

Чтобы запустить это решение, отредактируйте выбранную вами тему и выберите shortcodes.php с правой боковой панели. В конце этого файла перед первым add_shortcode вызова add_shortcode добавьте следующую функцию:

 function theme_list_all_network_sites() { global $wpdb; $result = ''; $sites = array(); $blogs = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->blogs WHERE spam = '0' AND deleted = '0' and archived = '0' and public='1'")); if(!empty($blogs)) { foreach($blogs as $blog) { $details = get_blog_details($blog->blog_id); if($details != false) { $url = $details->siteurl; $name = $details->blogname; if(!(($blog->blog_id == 1) && ($show_main != 1))) { $sites[$name] = $url; } } } ksort($sites); $count = count($sites); $current = 1; foreach($sites as $name=>$url) { $result.= '<a href="'.$url.'">'.$name.'</a>'; $result.= ($current == $count) ? "\n" : ' | '; ++$current; } } return $result; } 

Затем прокрутите вниз до конца файла и после последнего появления add_shortcode добавьте:

 add_shortcode('network_list', 'theme_list_all_network_sites'); 

Нажмите « Update File чтобы сохранить изменения.

Теперь, всякий раз, когда кто-либо использует [network_list] для элемента post, page или theme, [network_list] будет напечатан список сетевых сайтов.