如何向分类模板Wordpress添加侧边栏

问题描述 投票:0回答:1

我正在使用主题开发 WordPress 网站。

我有一个“职业”页面,右侧显示所有职业,左侧有侧边栏“sidebar_widgets”,其中包含一些过滤选项。

careers page, all good

现在,当我点击某个过滤选项时,比如说“全职”,我会被自动重定向到链接

/career-career-tag/full-time
。我认为这是分类页面,它正确地只向我显示带有标签
full-time
的职业。

taxonomy page, working but without sidebar

现在的问题是,带有过滤小部件的侧边栏不再显示,我无法进一步过滤。我认为这个页面是某种默认的 WordPress 页面,在 wp-admin 的“页面”部分中不可见。

查看代码后,我发现这个分类页面使用了

index.php
中的代码,这是最通用的模板。

现在我创建了一个名为

taxonomy.php
的文件,以便编辑模板并包含侧边栏,但我不知道要在里面放什么。

index.php
包含以下代码:

<?php
/**
 * The main template file.
 *
 * This is the most generic template file in a WordPress theme
 * and one of the two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * E.g., it puts together the home page when no home.php file exists.
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage AUTOPARTS
 * @since AUTOPARTS 1.0
 */
if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'classic' )
    get_template_part( 'index', 'classic' );
else if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'masonry' )
    get_template_part( 'index', 'classic' );
else if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'gallery' )
    get_template_part( 'index', 'portfolio' );
else if ( substr(autoparts_get_theme_option('blog_style'), 0, 9) == 'portfolio' )
    get_template_part( 'index', 'portfolio' );
else if ( substr(autoparts_get_theme_option('blog_style'), 0, 5) == 'chess' )
    get_template_part( 'index', 'chess' );
else
    get_template_part( 'index', 'excerpt' );
?>

如何编辑这个?或者我需要在

taxonomy.php
中添加什么才能添加侧边栏和侧边栏小部件?

更新

所以我使用了教程here:并且我添加了这个:

function taxonomy_widgets_init() {
    register_sidebar( array(
    'name' => 'Taxonomy sidebar',
    'id' => 'taxonomy_sidebar',
    ) );
}
add_action( 'widgets_init', 'taxonomy_widgets_init' );

在我的

taxonomy.php

<?php
/**
 * Template for displaying taxonomy archive pages.
 *
 * @package WordPress
 * @subpackage AUTOPARTS
 * @since AUTOPARTS 1.0
 */

get_header(); ?>

<div class="content-wrapper">
    <main class="main-content">
        <?php
        
            if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'classic' )
                get_template_part( 'index', 'classic' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'masonry' )
                get_template_part( 'index', 'classic' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'gallery' )
                get_template_part( 'index', 'portfolio' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 9) == 'portfolio' )
                get_template_part( 'index', 'portfolio' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 5) == 'chess' )
                get_template_part( 'index', 'chess' );
            else
                get_template_part( 'index', 'excerpt' ); 
        ?>
    </main>
    <aside class="sidebar">
        <?php dynamic_sidebar( 'taxonomy_sidebar' ); ?>
    </aside>
</div>

<?php get_footer(); ?>

我可以在 WordPress 中看到侧边栏,并且我已经添加了我想要的小部件。只是,当我运行该页面时,我收到以下错误:

the errors after i add the sidebar

更新2

所以显然错误是由于

<aside>
(我认为是这样)引起的。

如果我使用:

<?php
/**
 * Template for displaying taxonomy archive pages.
 *
 * @package WordPress
 * @subpackage AUTOPARTS
 * @since AUTOPARTS 1.0
 */

get_header(); ?>

<div class="content-wrapper">
    <main class="main-content">
        <?php

            if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'classic' )
                get_template_part( 'index', 'classic' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'masonry' )
                get_template_part( 'index', 'classic' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 7) == 'gallery' )
                get_template_part( 'index', 'portfolio' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 9) == 'portfolio' )
                get_template_part( 'index', 'portfolio' );
            else if ( substr(autoparts_get_theme_option('blog_style'), 0, 5) == 'chess' )
                get_template_part( 'index', 'chess' );
            else
                get_template_part( 'index', 'excerpt' ); 
        ?>
    </main>
    <?php if ( is_active_sidebar( 'taxonomy_sidebar' ) ) : dynamic_sidebar( 'taxonomy_sidebar' ); endif; ?>
</div>

<?php get_footer(); ?>

页面在控制台中运行没有错误。但问题是侧边栏放置在页面的末尾,而不是内容中。 如何编辑模板以便将其放置在正确的位置?

the sidebar appearing in the bottom left corner

php html wordpress taxonomy
1个回答
0
投票

首先,taxonomy_sidebar 没有被任何 DIV 包裹,因此它出现在页脚下方,在 content-wrapper 类中使用 display-flex 或在分类类中使用 float-left 包裹它,调整每个 div 的大小,以便他们并排出现。

© www.soinside.com 2019 - 2024. All rights reserved.