大家好! 我想知道有没有办法为所有类别创建单个页面,并根据单击的导航菜单项动态更改WP_query中的类别名称,或者我必须为每个类别创建一个单独的页面(在我的案例中有23个) ?
菜单:
<?php
$args = array(
'menu' => 'category_nav',
'container' => 'ul',
'container_class' => 'accordion-content',
'container_id' => '',
'menu_class' => 'accordion-content',
'menu_id' => '',
'echo' => true,
'fallback_cb' => false,
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'item_spacing' => 'preserve',
'depth' => 0,
'walker' => '',
'theme_location' => ''
);
wp_nav_menu($args); ?>
文章:
<?php
$args = array(
'nopaging' => true,
'orderby' => 'name',
'category_name' => 'HERE GOES A CATEGORY NAME',
);
$q = new WP_Query($args);
if($q->have_posts()) {
while($q->have_posts()){ $q->next_post();
$post_id = $q->post->ID;
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id ( $post_id ), 'full' );
$title = get_the_title($post_id);
$date = get_the_date('d.m.Y', $post_id);
$content = get_post_field('post_content', $post_id);
$discount = get_post_field('discount', $post_id);
$discount_exists = get_post_meta( $post_id, 'discount', true );
$full_description = get_post_field('full_description', $post_id);
$full_description_exists = get_post_meta( $post_id, 'full_description', true ); ?>
<div class="gallery-item">
<?php echo '<div class="item-img" style="background-image:url(\'' . $thumbnail[0] . '\')"></div>'; ?>
<div class="item-content">
<div class="item-header"> <?php echo $title; ?> </div>
<div class="item-desc"> <?php echo $content; ?> </div>
</div>
<?php
if ( $full_description_exists ) {
?><div class="btn">More</div><?php
} ?>
</div>
<?php
}
}
wp_reset_postdata();
?>
我应该在哪里获得该cateory name / ID / slug以及如何在我的代码中使用它?我应该只在模板文件夹中创建category.php文件,还是应该使用其他文件结构来定制类别输出?
答案 0 :(得分:2)
single.php适用于所有类别。每个帖子都可以使用此模板(除非您创建类似single-$ template.php的模板),在代码中,您可以使用此https://developer.wordpress.org/reference/functions/get_the_category/
从此帖子中获取类别答案 1 :(得分:1)
您不需要为类别创建每个页面,您可以创建可用于动态显示内容的基本文件。正如您可以在wordpress here的模板层次结构中看到的类别是默认类别附加默认post
类型。
使用wordpress Post
类型的默认类别。
渲染类别归档索引页面在WordPress中使用以下路径:
自定义分类与自定义帖子类型
自定义分类法使用稍微不同的模板文件路径:
在您的情况下,您可以使用category.php
进行动态类别显示,除非您的类别不是自定义分类,否则您需要使用taxonomy.php
作为基本模板。
您可以使用get_query_var();
功能来实现
get_query_var(&#39; cat&#39;); &gt;这将返回当前类别ID。
$category = get_category(get_query_var('cat'));
然后你可以按类别ID获取类别对象,这样你就可以获得
的 cat id, name, slug etc
强>