1

这是我在很多场合都处理过的一般 Wordpress 问题,我似乎找不到解决它的好方法。

基本上和标题说的一模一样。您已经注册了大量的小部件位置,并且这些位置都包含小部件。您注册了一个新的小部件位置,当您检查后端时,新位置已经注册好,但是 Wordpress 已经忘记了哪些小部件应该去哪里并且它们都在错误的位置。您必须拖放才能重新排序。

如果客户端可以通过添加新页面来动态创建小部件位置,这不是一个大问题,但有点痛苦。举个例子;

在 functions.php 中,我为站点中的每个页面注册了一个新的小部件容器;

$sitepages = get_pages();
foreach ($sitepages as $pagesitem) {
        register_sidebar(array(
        'ID' => 'sidebar',
        'name'=>get_the_title($pagesitem->ID),
        'before_widget' => '<div class="sidebox">',
        'after_widget' => '</div>',
        'before_title' => '<h3>',
        'after_title' => '</h3>'
        )); 
}   

然后像这样在侧边栏中调用小部件;

        <?php
            $pagetitle = get_the_title($post->ID);
            if (function_exists('dynamic_sidebar') && dynamic_sidebar("$pagetitle")) : else : 
                // Our page specific widgets load in here.
            endif;
        ?>

一切都很好,除了新页面的创建“重新组织”了一切。也许我很厚(它发生了!)非常感谢任何帮助。

编辑

Wordpress 将这些新注册的小部件位置放置在何处似乎没有押韵或原因,它们只是出现在现有小部件中看似随机的位置。如果它把新的小部件放在列表的底部,那么它就可以了——正如你所期望的那样它是空的。如果它将它放在列表的中间,则包含在其他位置的所有其他小部件都将移动到相邻的小部件位置。

4

0 回答 0