我创建了一个名为“系列”的自定义分类法(下面的代码)和两页:分类法。php和分类法系列。php
1) 我注意到siteurl。com/series不起作用,我得到的是404页面,但如果我要尝试查找特定的series,比如说siteurl。com/series/test-series这确实可以找到页面。
2) 当我尝试siteurl时。com/series/test-series,它可以工作,它只需要拉动一根柱子,但在系列中,即使它应该显示所有柱子。我已经为我的分类法系列提供了代码。php,以帮助我们找到解决方案。
请让我知道我错过了哪些步骤,因为这是我第一次在路上犯错误,经过两周的故障排除,我不知所措。非常感谢您的帮助!
1) functions.php Register Custom Taxonomy (Series) Code
function create_series_hierarchical_taxonomy() {
$labels = array(
\'name\' => _x( \'Series\', \'taxonomy general name\' ),
\'singular_name\' => _x( \'Series\', \'taxonomy singular name\' ),
\'search_items\' => __( \'Search Series\' ),
\'all_items\' => __( \'All Series\' ),
\'parent_item\' => __( \'Parent Series\' ),
\'parent_item_colon\' => __( \'Parent Series:\' ),
\'edit_item\' => __( \'Edit Series\' ),
\'update_item\' => __( \'Update Series\' ),
\'add_new_item\' => __( \'Add New Series\' ),
\'new_item_name\' => __( \'New Series Name\' ),
\'menu_name\' => __( \'Series\' ),
);
$args = array(
\'hierarchical\' => true,
\'labels\' => $labels,
\'taxonomies\' => array( \'series\' ),
\'public\' => true,
\'show_ui\' => true,
\'show_admin_column\' => true,
\'query_var\' => true,
\'rewrite\' => array( \'slug\' => \'series\', \'with_front\' => true, \'hierarchical\' => true ),
\'show_in_rest\' => true,
\'can_export\' => true,
\'has_archive\' => true,
\'exclude_from_search\' => false,
\'publicly_queryable\' => true,
\'capability_type\' => \'post\',
);
register_taxonomy(\'series\', array(\'post\'), $args );
}
2) taxonomy-series.php
<?php get_header(); ?>
<div class="container">
<div class="row">
<h2><?php single_cat_title(); ?></h2>
<?php
$args = array(
\'numberposts\' => -1,
\'post_type\' => \'post\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'series\',
\'field\' => \'slug\',
),
),
);
$query = new WP_Query( $args );
?>
<div class="col-sm-6 card-block-img">
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'single-post-thumbnail\' ); ?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo $image[0]; ?>"></a>
</div>
<div class="col-sm-6>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
</div>
</div><!-- END ROW -->
</div><!-- END CONTAINER -->
<?php get_footer(); ?>
最合适的回答,由SO网友:Jacob Peattie 整理而成
我注意到siteurl。com/series不工作我得到404页
这是正确的行为。WordPress中此URL处没有可显示的内容。您需要提供一个特定的术语,以便WordPress可以使用该术语检索帖子。
请注意,在新安装的WordPress中siteurl.com/category/
返回404,即使您有类别。
当我尝试siteurl时。com/series/test-series和它的工作原理它只是拉一个帖子,但在系列中,即使它应该显示所有帖子。
问题可能是您尚未构建taxonomy-series.php
正确地
第一个问题是,即使您使用WP_Query
, 实际上,您并没有在结果上循环以输出每个结果。您的代码只写入一次输出。无论如何,你不应该使用WP_Query
无论如何
在以下位置查看系列时:siteurl.com/series/test-series
, WordPress会自动为您查询正确的帖子。要显示它们,您不应该进行自己的查询。您应该使用The Loop.
所以taxonomy-series.php
应如下所示:
<?php get_header(); ?>
<div class="container">
<div class="row">
<h2><?php single_cat_title(); ?></h2>
<?php while ( have_posts() ) : the_post(); ?>
<div class="col-sm-6 card-block-img">
<?php $image = wp_get_attachment_image_src( get_post_thumbnail_id(), \'single-post-thumbnail\' ); ?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo $image[0]; ?>"></a>
</div>
<div class="col-sm-6">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
</div>
<?php endwhile; ?>
</div><!-- END ROW -->
</div><!-- END CONTAINER -->
<?php get_footer(); ?>