[英]Determine the category identifier of the category page template in wordpress
这件事困扰了我大部分时间。 我为女友的烹饪博客创建了一个新的category.php模板文件(您可以在此处看到)。
我想要类别页面的特定布局-而不是我使用的主题(拼凑而成)提供的默认布局。
我四处搜寻,最终发现我可以使用Wordpress PHP函数<?php single_cat_title( $prefix, $display ); ?>
<?php single_cat_title( $prefix, $display ); ?>
,如Wordpress Codex中所述 。 关键是要使用Wordpress简码[catlist]
。 简码可以采用类别名称或类别ID。
我以为就是这样,但是不幸的是,我女友的博客是双语的博客,这意味着single_cat_title
并不总是返回相同的值。 它可能返回recipe
以英语和recette
,其中可用于解决该类别的法国人既不[catlist]
而且,如果您认为这是双语博客的一个特例,那就不是……它也适用于具有相同名称类别的博客(至于为什么拥有它,我不知道……)
我可以找到的所有其他方法都是特定于the_loop的 ,不适用于我的情况。
无论如何,我想为大家的利益分享以下答案。 当我找到它时,它就让我开心!
检索当前对象标识符(可能是帖子,类别,标签...)的方法是使用较低级别的Wordpress对象,即:
$wp_query->get_queried_object_id()
如Wordpress的课程参考中所述 。 诀窍是要知道为您提供属性的方法名称,而Wordpress不会告诉您。
所描述的最接近的方法是get_queried_object()
(请参见函数参考 )。
我页面的最终模板如下:
<?php
/**
* The Template for displaying posts in the category view.
*
*/
get_header(); ?>
<div id="primary" class="site-content">
<h1><?php single_cat_title("");?></h1>
<div id="content" role="main">
<?php echo do_shortcode('[catlist id='.$wp_query->get_queried_object_id().' orderby=date order=DESC excerpt=yes excerpt_size=25 thumbnail=yes numberposts=-1 template=del]'); ?>
</div><!-- #content -->
</div><!-- #primary .site-content -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.