Я пытаюсь создать шорткод, который создает список всех моих сайтов в моей многосайтовой сети Wordpress. Идея заключается в том, что я использую [list_sites] в теле страницы и получаю список всех своих сайтов.
Я использую get_sites, потому что у меня версия 4.8.3.
Когда я добавляю эту функцию в файл functions.php моей родительской темы, я получаю внутреннюю ошибку 500.
Я попытался использовать плагин под названием Code Snippets, чтобы добавить этот код, но я получаю эту ошибку, которая дает подсказку:
Фрагмент деактивирован из-за ошибки в строке 11: синтаксическая ошибка, непредвиденный '['
Кажется, что каждый пример кода, который я видел в Интернете, использует один и тот же синтаксис, поэтому я не уверен, что делаю неправильно.
Вот мой код:
function make_list_shortcode() {
$subsites = get_sites();
if ( ! empty ( $subsites ) ) {
echo '<ul class="subsites">';
foreach( $subsites as $subsite ) {
$subsite_id = get_object_vars( $subsite )["blog_id"];
$subsite_name = get_blog_details( $subsite_id )->blogname;
$subsite_link = get_blog_details( $subsite_id )->siteurl;
echo '<li class="site-' . $subsite_id . '"><a href="' . $subsite_link . '">' . $subsite_name . '</a></li>';
}
echo '</ul>';
}
}
add_shortcode('list_sites', 'make_list_shortcode');