注册新窗口小部件位置会移动现有窗口小部件

时间:2012-07-16 09:11:21

标签: wordpress widget

这是我在很多场合处理过的一般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放置这些新注册的小部件位置,它们只是出现在现有小部件中看似随机的位置。如果它将新窗口小部件放在列表的底部,那么就可以了 - 它是空的,正如您所期望的那样。如果它将它放在列表的中间,则其他位置中包含的所有其他小部件将移动到相邻的小部件位置。

0 个答案:

没有答案