代码之家  ›  专栏  ›  技术社区  ›  kingsman

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

  •  1
  • kingsman  · 技术社区  · 7 年前

    我正在尝试制作一个快捷代码,在我的多站点wordpress网络中创建一个我所有站点的列表。我的想法是在页面主体中使用[list\u sites],然后得到我所有站点的列表。

    我使用get_网站是因为我使用的是4.8.3版本。

    当我将此函数添加到父主题的函数中时。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');
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Spartacus    7 年前

    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');