Intereting Posts
Как отображать содержимое для заданного идентификатора страницы с помощью обертки <p> </ p>? Запуск кода перед запуском object-cache.php Пользовательский SQL-запрос ORDER BY term_order Текущий архив автора в меню навигации Как удалить панель поиска, которая не является виджетами? Связывание Javascript в файле functions.php Как вы можете определить, является ли изображение просто прикрепленным или фактически вставлено в сообщение? Закрытие в разработке плагинов WordPress Как отключить или защитить от одноразовых учетных записей электронной почты? FacetWP – условно отображаемые метки фасетов Оптимизация загрузки папки, а затем повторная загрузка? Как разместить большое количество сообщений в wordpress? Выдержки и пользовательские типы сообщений Значения пользовательских сообщений в пользовательском обзоре сообщений Переадресация доменного имени

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

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

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] будет напечатан список сетевых сайтов.