在 WordPress 里,你可以通过 PHP 代码依据不同页面来调用不同的边栏导航。以下为你详细介绍几种常见页面情况及相应的代码实现方法。

1. 判断首页并调用特定边栏


若要在首页调用特定的边栏,可以使用 is_front_page() 函数来判断是否为首页。示例代码如下,你可以将其添加到主题的 sidebar.php 文件或者需要调用边栏的模板文件中:
收起
php
<?php
if (is_front_page()) {
    // 如果是首页,调用首页专用边栏
    dynamic_sidebar('front-page-sidebar');
} else {
    // 其他页面调用默认边栏
    dynamic_sidebar('default-sidebar');
}
?>

代码解释:

 
  • is_front_page():用于判断当前页面是否为首页。
  • dynamic_sidebar():该函数用于调用注册好的边栏。'front-page-sidebar' 和 'default-sidebar' 是边栏的 ID,你需要在主题的 functions.php 文件中注册这些边栏,示例代码如下:

收起
php
function custom_register_sidebars() {
    register_sidebar(array(
        'name' => '首页边栏',
        'id' => 'front-page-sidebar',
      'description' => '显示在首页的边栏',
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="widget-title">',
        'after_title' => '</h2>',
    ));

    register_sidebar(array(
        'name' => '默认边栏',
        'id' => 'default-sidebar',
      'description' => '显示在其他页面的边栏',
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget' => '</div>',
        'before_title' => '<h2 class="widget-title">',
        'after_title' => '</h2>',
    ));
}
add_action('widgets_init', 'custom_register_sidebars');

2. 判断单篇文章页面并调用特定边栏


使用 is_single() 函数判断是否为单篇文章页面,示例代码如下:
收起
php
<?php
if (is_single()) {
    // 如果是单篇文章页面,调用文章专用边栏
    dynamic_sidebar('single-post-sidebar');
} else {
    // 其他页面调用默认边栏
    dynamic_sidebar('default-sidebar');
}
?>

3. 判断分类页面并调用特定边栏


使用 is_category() 函数判断是否为分类页面,示例代码如下:
收起
php
<?php
if (is_category()) {
    // 如果是分类页面,调用分类专用边栏
    dynamic_sidebar('category-sidebar');
} else {
    // 其他页面调用默认边栏
    dynamic_sidebar('default-sidebar');
}
?>

4. 根据不同的自定义文章类型调用边栏


如果你有自定义文章类型,可以使用 is_singular() 函数结合自定义文章类型名称来判断,示例代码如下:
收起
php
<?php
if (is_singular('your_custom_post_type')) {
    // 如果是自定义文章类型的单篇页面,调用自定义文章类型专用边栏
    dynamic_sidebar('custom-post-type-sidebar');
} else {
    // 其他页面调用默认边栏
    dynamic_sidebar('default-sidebar');
}
?>

其中,'your_custom_post_type' 需要替换为你实际的自定义文章类型名称。

综合判断示例


你还可以将多种判断条件组合起来,根据不同情况调用不同的边栏,示例代码如下:
收起
php
<?php
if (is_front_page()) {
    dynamic_sidebar('front-page-sidebar');
} elseif (is_single()) {
    dynamic_sidebar('single-post-sidebar');
} elseif (is_category()) {
    dynamic_sidebar('category-sidebar');
} elseif (is_singular('your_custom_post_type')) {
    dynamic_sidebar('custom-post-type-sidebar');
} else {
    dynamic_sidebar('default-sidebar');
}
?>

通过以上方法,你可以根据 WordPress 不同的页面类型灵活调用不同的边栏导航。