我正在使用主题开发 WordPress 网站。
我有一个“职业”页面,右侧显示所有职业,左侧有侧边栏“sidebar_widgets”,其中包含一些过滤选项。
现在,当我点击某个过滤选项时,比如说“全职”,我会被自动重定向到链接
/career-career-tag/full-time
。我认为这是分类页面,它正确地只向我显示带有标签 full-time
的职业。
现在的问题是,带有过滤小部件的侧边栏不再显示,我无法进一步过滤。我认为这个页面是某种默认的 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 中看到侧边栏,并且我已经添加了我想要的小部件。只是,当我运行该页面时,我收到以下错误:
更新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(); ?>
页面在控制台中运行没有错误。但问题是侧边栏放置在页面的末尾,而不是内容中。 如何编辑模板以便将其放置在正确的位置?
首先,taxonomy_sidebar 没有被任何 DIV 包裹,因此它出现在页脚下方,在 content-wrapper 类中使用 display-flex 或在分类类中使用 float-left 包裹它,调整每个 div 的大小,以便他们并排出现。