首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用get_sites()并在wordpress中生成一个短代码

尝试使用get_sites()并在wordpress中生成一个短代码
EN

Stack Overflow用户
提问于 2017-10-31 16:24:48
回答 1查看 838关注 0票数 1

我正在尝试做一个短代码,创建我的多站点wordpress网络中所有站点的列表。我的想法是在页面正文中使用list_sites,并得到我所有站点的列表。

我使用get_sites是因为我使用的是4.8.3版本。

当我将这个函数添加到我的父主题的functions.php文件中时,我会得到500个内部错误。

我尝试使用一个名为“代码段”的插件来添加这段代码,但是我得到了这个错误,它提供了一个线索:

由于第11行的错误:语法错误,意外的'[‘’,这个片段已被停用。

我在网上看到的每个示例代码似乎都使用相同的语法,所以我不知道自己做错了什么。

这是我的密码:

代码语言:javascript
复制
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');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-31 17:08:43

你做错了几件事。您不应该回显短代码输出,应该返回它。而且,您没有以正确的方式访问对象属性。试试下面的代码:

代码语言:javascript
复制
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');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47040109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档