客户需要一个网站才能迁移到WordPress。
在此网站中,每个页面都有一个带有不同内容的侧边栏
在某些页面中, Accordion 位于侧边栏下方,在某些情况下,仅可见文本和图像
如何在WordPress中实现呢?
如果必须创建模板,则无法完成很多页面
即使对于每个页面,也不可能使用不同的侧边栏小部件
指导我实现此方法
最佳答案
可以通过两个步骤将不同的侧边栏(小部件)添加到每个页面:
functions.php
中注册每个页面的侧边栏将边栏添加到主题模板
在主题模板中,将以下代码添加到您希望小部件区域所在的位置:
<?php
global $post;
dynamic_sidebar( 'widget_area_for_page_'.$post->post_name );
?>
注册侧边栏
在主题的
functions.php
中,添加以下代码块以注册站点中每个页面的侧边栏。请注意,它包括草稿页等,因此您可以在仍处于草稿模式的情况下编辑小部件。function myTheme_registerWidgetAreas() {
// Grab all pages except trashed
$pages = new WP_Query(Array(
'post_type' => 'page',
'post_status' => array('publish', 'pending', 'draft', 'auto-draft', 'future', 'private', 'inherit'),
'posts_per_page'=>-1
));
// Step through each page
while ( $pages->have_posts() ) {
$pages->the_post();
// Ignore pages with no slug
if ($pages->post->post_name == '') continue;
// Register the sidebar for the page. Note that the id has
// to match the name given in the theme template
register_sidebar( array(
'name' => $pages->post->post_name,
'id' => 'widget_area_for_page_'.$pages->post->post_name,
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
'after_title' => '',
) );
}
}
add_action( 'widgets_init', 'myTheme_registerWidgetAreas' );
希望能帮助到你!
关于WordPress-每页不同的侧边栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22501068/