每页用户可定义的侧边栏

时间:2013-05-02 作者:testing

我正在寻找一种解决方案,用户可以为自己定义一些边栏小部件(仅限于文本和图像)。用户应该可以为不同的页面选择不同的侧栏。

WidgetLogic等只允许在页面上显示边栏小部件的配置(在这种情况下,标准用户也没有权限,我必须对此进行更改)。还有其他更舒适的解决方案,但用户仍然需要了解HTML才能定义提要栏。

你知道什么切实可行的解决办法吗?

2 个回复
SO网友:Tom J Nowell

你可以使用暴力手段。

注册侧栏时,给它一个ID和名称,然后在侧栏模板上使用该ID和名称来显示它。

如果将页面的ID附加到该标识符上,会怎么样?因此,您没有使用“mainsidebar”,而是使用了“mainsidebar”$post->ID?

步骤1:在函数中。php执行WP\\U查询循环以获取所有页面。但是,与其显示帖子,不如注册一个侧栏,并将帖子ID附加到标识符中。将其标题附加到漂亮的名称后,这样您就不会在管理面板中查看数字了步骤2:在页面模板中,修改侧栏调用,以便像前面一样在末尾包含帖子ID。

优势:

每个页面都有一个独特的侧边栏,可以完全控制内容的去向,简单、快速、轻松地实现。缺点:

无法缩放。100页意味着100个边栏,您必须更具选择性,也许您可以在WP\\u查询注册循环中过滤的post meta切换对于每个页面重新输入共享内容来说都很繁琐。这可以通过他们共享的另一个侧栏来避免,而不是每页

SO网友:testing

对于这种类型的任务,我使用了更多字段和更多类型。非常有效(除了用户必须输入一些ID)。

MoreFields:用户在每个页面上输入一些ID
MoreTypes:包含所有侧栏的侧栏列表

<div id="custom-sidebar">
    <?php
        $fields = get_post_custom(get_the_ID());
        /*
        echo \'<pre>\';
        print_r($fields);
        echo \'</pre>\';
        */
        if(!empty($fields[\'sidebar\'][0])){
            global $wp_query;
            $wp_query = new WP_Query();

            $queryString[\'post_type\'] = "sidebar";
            $queryString[\'p\'] = $fields[\'sidebar\'][0];

            $wp_query->query($queryString);

            if($wp_query->have_posts()){
                while ($wp_query->have_posts()) : $wp_query->the_post();
                    the_content(\'\',TRUE);
                endwhile;
            }
        }
    ?>
</div><!-- #custom-sidebar -->

结束

相关推荐

duplicate sidebar

我对侧边栏有问题。我有4个侧边栏:“Essential”、“Essential+”、“Premier”和“Premier+”。register_sidebar( array( \'name\' => __(\'Essential Plan\'), \'before_widget\' => \'<ul>\', \'after_widget\' => \'</