尝试使用 get_sites() 并在 wordpress 中制作简码
Trying to use get_sites() and make a shortcode in wordpress
我正在尝试制作一个短代码,用于在我的多站点 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');
你做错了几件不同的事。你不应该回显简码输出,你应该 return 它。此外,您没有以正确的方式访问对象属性。试试下面的代码:
function make_list_shortcode() {
$subsites = get_sites();
if ( ! empty ( $subsites ) ) {
$html = '<ul class="subsites">';
foreach( $subsites as $subsite ) {
$subsite_id = $subsite->blog_id;
$subsite_name = get_blog_details( $subsite_id )->blogname;
$subsite_link = get_blog_details( $subsite_id )->siteurl;
$html .= '<li class="site-' . $subsite_id . '"><a href="' . $subsite_link . '">' . $subsite_name . '</a></li>';
}
$html .= '</ul>';
return $html;
}
}
add_shortcode('list_sites', 'make_list_shortcode');
我正在尝试制作一个短代码,用于在我的多站点 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');
你做错了几件不同的事。你不应该回显简码输出,你应该 return 它。此外,您没有以正确的方式访问对象属性。试试下面的代码:
function make_list_shortcode() {
$subsites = get_sites();
if ( ! empty ( $subsites ) ) {
$html = '<ul class="subsites">';
foreach( $subsites as $subsite ) {
$subsite_id = $subsite->blog_id;
$subsite_name = get_blog_details( $subsite_id )->blogname;
$subsite_link = get_blog_details( $subsite_id )->siteurl;
$html .= '<li class="site-' . $subsite_id . '"><a href="' . $subsite_link . '">' . $subsite_name . '</a></li>';
}
$html .= '</ul>';
return $html;
}
}
add_shortcode('list_sites', 'make_list_shortcode');