0

这是一天中大部分时间困扰我的事情。我为我女朋友的烹饪博客创建了一个新的 category.php 模板文件(你可以在这里看到它)。

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

我四处搜索,最终发现我可以使用Wordpress Codex<?php single_cat_title( $prefix, $display ); ?>中描述的 Wordpress PHP 函数。重点是使用 Wordpress 简码。短代码可以采用类别名称或类别 ID。[catlist]

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

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

无论如何,我想我会为了大家的利益分享下面的答案。当我找到它时,它让我很开心!

4

1 回答 1

0

检索当前对象标识符(无论是帖子、类别、标签...)的方法是使用较低级别的 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(); ?>
于 2014-07-13T12:23:28.140 回答