繁体   English   中英

确定Wordpress中类别页面模板的类别标识符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM