个性化阅读
专注于IT技术分析

基于post_type的边栏中的wp_list_categories

我想在我的自定义post_type中获得发布的所有类别, 并在边栏中将其显示为列表。我怎样才能做到这一点?

另外, 基于我当前所在的类别网站, 我不想使用默认模板category.php而不是我想使用archive-myposttype.php来基于类别使用我自己的布局。

所有类别都是默认的帖子类别, 而不是自定义分类法。

我有两个custom_post_types(posttype1, posttype2), 但是没有自定义分类法, 因此很难筛选和显示仅分配给自定义帖子类型帖子的类别。

请帮忙。谢谢。


#1


对于第一个问题, 你必须使用原始sql:

<?php 
$query = 'SELECT DISTINCT term_id FROM {$wpdb->prefix}term_taxonomy JOIN {$wpdb->prefix}term_relationships ON {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id JOIN {$wpdb->prefix}posts on {$wpdb->prefix}term_relationships.object_id = {$wpdb->prefix}posts.ID AND wp_3_posts.post_type ="custom_post" WHERE taxonomy = "category"';
$term_ids = $wpdb->get_col($query, 0);
$categories = get_terms(array("taxonomy" => "category", "object_ids" => $term_ids)); 
?>

参考在这里:https://codex.wordpress.org/Database_Description

对于第二个问题, 你可以使用上面的代码查找这是否是你要定位的类别, 然后在category.php文件中加载所需的自定义模板。


#2


当你说要以列表形式显示类别时, 我想你不想为列出的每个类别添加链接。如果是这样, 则可以使用” get_the_category()”函数轻松获取帖子的类别。

对于第二个问题, 我不确定你是否要基于类别或帖子类型创建自定义模板, 因为类别可以同时存在于两种帖子类型中, 所以我看不到如何实现此目的。

但是, 如果你想显示基于类别标签的自定义模板, 则可以轻松创建文件并使用以下类别将其命名为category- {category-slug} .php。因此, 对于名为”照片”的类别, 文件名将为” category-photos.php”。

赞(0) 打赏
未经允许不得转载:srcmini » 基于post_type的边栏中的wp_list_categories
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏