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