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

时间:2014-07-13 12:23:28

标签: php wordpress qtranslate

这一天让我感到很困扰。我为我女朋友的烹饪博客创建了一个新的category.php模板文件(你可以看到here)。

我想要一个类别页面的特定布局 - 而不是我使用的主题(Patchwork)提供的默认布局。

我google了一下,最终发现我可以使用Wordpress Codex中描述的Wordpress PHP函数<?php single_cat_title( $prefix, $display ); ?>。接下来就是使用Wordpress短代码[catlist]。短代码可以采用类别名称或类别ID。

我认为就是这样但不幸的是我的女朋友的博客是双语的,这意味着single_cat_title并不总是返回相同的价值。它可能会返回英文recipe和法语recette,这些都不能用于解析[catlist]中的类别。如果你认为这是双语博客的一个极端情况,那不是......它也适用于具有相同名称类别的博客(至于为什么你会这样,我不知道...)

我能找到的所有其他方法都是针对the_loop的,并不适用于我的情况。

无论如何,我想我会分享下面的答案,为每个人带来好处。当我找到它时,它就结束了我的一天!

1 个答案:

答案 0 :(得分:0)

检索当前对象标识符(无论是帖子,类别,标签......)的方法是使用较低级别的Wordpress对象,即:

$wp_query->get_queried_object_id()

如Wordpress的class reference中所述。诀窍是知道给你属性的方法名称,而Wordpress没有告诉你。

最接近的描述方法为get_queried_object()(请参阅function reference)。

我页面的最终模板如下:

<?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(); ?>