【问题标题】:Determine the category identifier of the category page template in wordpress确定wordpress中分类页面模板的分类标识
【发布时间】:2014-07-13 12:23:28
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: php wordpress qtranslate


    【解决方案1】:

    检索当前对象标识符(无论是帖子、类别、标签...)的方法是使用较低级别的 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(); ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多