Как получить список подблогов без использования get blog list()?
Функция get_blog_list()
устарела с версии 3.0. Как получить список блогов в многосайтовом блоге?
4 answers
У Trac есть некоторые обсуждения и код для возможной замены в будущей версии, билет #14511 новая функция - wp_get_sites($args).
Вы можете напрямую запросить свою базу данных.
global $wpdb;
$blogs = $wpdb->get_results( "SELECT * FROM $wpdb->blogs ORDER BY blog_id" );
Это вернет массив, содержащий все ваши сайты в сети, затем вы можете использовать оператор foreach для создания и заполнения собственного массива.
Также не забудьте внимательно прочитать страницу кодекса о взаимодействии с базой данных WP при использовании $wpdb
, особенно обратите внимание на $wpdb->prepare
метод при выполнении более сложных запросов.
Одной из возможных полезных альтернатив является get_blogs_of_user($user_id).
Это идеальная альтернатива, но только в том случае, если все блоги были созданы одним и тем же пользователем (администратором), что работает в моем случае.
Для этого есть плагины, такие как http://wordpress.org/extend/plugins/multisite-recent-posts-widget /.
Я использовал аналогичный плагин (производный от плагина выше) код (исходный источник больше не доступен, следовательно, нет ссылки, я нашел его только две недели назад!) Для создания шаблона страницы sitemap с несколькими сайтами, в котором перечислены последние 300 новых мультисайтов.
Вы можете скачать шаблон моей страницы по адресу www.google-adsense-templates.co.uk/seo-plugin/sitemap-multisite.zip будет работать только с темой SEO Talian 05, но вы можете легко скопировать соответствующий код в свой собственный шаблон страницы тем.
Дэвид