Сети сайтов — действительно замечательная фича, представленная в WP 3.0+. В этой статье мы научимся создавать меню навигации по этой самой сети, где будут выведены все сайты, находящиеся в вашей сети.
Прежде всего нам необходимо создать функцию. Скопируйте и вставьте следующий код в файл functions.php вашей темы:
4 | function wp_list_sites( $expires = 7200 ) { |
5 | if ( !is_multisite() ) return false; |
11 | if ( false === ( $site_list = get_transient( 'multisite_site_list' ) ) ) { |
13 | $site_list = $wpdb ->get_results( $wpdb ->prepare( 'SELECT * FROM wp_blogs ORDER BY blog_id' ) ); |
15 | set_site_transient( 'multisite_site_list' , $site_list , $expires ); |
18 | $current_site_url = get_site_url( get_current_blog_id() ); |
21 | <ul id= "network-menu" >' . "\n" ; |
23 | foreach ( $site_list as $site ) { |
24 | switch_to_blog( $site ->blog_id ); |
25 | $class = ( home_url() == $current_site_url ) ? ' class="current-site-item"' : '' ; |
27 | <li id= "site-' . $site->blog_id . '" '="" .="" $class=""><a href="' . home_url() . '">' . get_bloginfo( 'name' ) . '</a></li> |
30 | restore_current_blog(); |
После этого можно использовать функцию wp_list_sites() в файлах вашей темы. Пример ниже показывает как работает функция:
3 | $network_menu = wp_list_sites(); |
7 | <?php echo $network_menu ; ?> |
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)