Retrieve single term slug

时间:2011-04-04 作者:Andrew

我正在为不同的帖子类型创建通用的“单标签页”
我正在使用下一个代码:

$loop = new WP_Query( array( \'post_type\' => \'any\', \'tag\' => single_term_title( \'\', false ), \'posts_per_page\' => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="entry-content">
     <?php the_excerpt(); ?>
  </div><!-- .entry-content -->
<?php endwhile; // End the loop. ?> 
在分类术语没有冲突之前,它可以正常工作
例如:
如果我有类别(&;);标记名称-"Videos", 类别将包含slug-“/视频”&;标记“/视频-2”。

如果slug与上述分类名称不同,则代码不起作用
我需要一个替代函数single_term_title(), 差不多"single_term_slug()".

有什么想法吗?

P、 “我在想”get_term_by()“函数,但我没有幸运地将其应用到上面的代码中。

Updated: 我已经在下面发布了我的代码。

3 个回复
最合适的回答,由SO网友:Andrew 整理而成

谢谢你们这么快的反应。非常感谢!

以下是“全局”标记页面的代码(显示默认“post\\u tag”分类法的术语):

<?php
$term_slug = get_queried_object()->slug;
    if ( !$term_slug )
    return;
    else  
$loop = new WP_Query( array( \'post_type\' => \'any\', \'tag\' => $term_slug, \'posts_per_page\' => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="entry-content">
    <?php the_excerpt(); ?>
  </div><!-- .entry-content -->
<?php endwhile; // End the loop. ?>  
下一个代码示例用于自定义分类查询(显示自定义分类的术语):

<?php 
//http://codex.wordpress.org/Function_Reference/WP_Query#Taxonomy_Parameters
$term_slug = get_queried_object()->slug;
        if ( !$term_slug )
        return;
        else
$args = array(
    \'tax_query\' => array(
                     array(
                       \'taxonomy\' => \'gallery_category\',
                       \'field\' => \'slug\',
                       \'terms\' => $term_slug,
                       \'posts_per_page\' => 10
                     )
                   )
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>
  <div class="entry-content">
    <?php the_excerpt(); ?>
  </div><!-- .entry-content -->
<?php endwhile; // End the loop. ?> 

SO网友:Joe Hoyle

中有对术语对象的引用$wp_query, 和一个快捷功能来获取此信息(如果您正在运行WordPress 3.1):get_queried_object().

所以,为了得到子弹你会echo get_queried_object()->slug;

如果您没有运行WordPress 3.1,则必须调用get_queried_object()global $wp_query:

global $wp_query;echo $wp_query->get_queried_object()->slug;

SO网友:Bainternet

这是一个叉子single_term_slug() 功能超出single_term_title()

function single_term_slug( $prefix = \'\', $display = true ) {
    $term = get_queried_object();
    if ( !$term )
    return;
    if ( is_category() )
        $term_slug = apply_filters( \'single_cat_slug\', $term->slug );
    elseif ( is_tag() )
        $term_slug = apply_filters( \'single_tag_slug\', $term->slug );
    elseif ( is_tax() )
        $term_slug = apply_filters( \'single_term_slug\', $term->slug );
    else
        return;
    if ( empty( $term_slug ) )
        return;
    if ( $display )
        echo $prefix . $term_slug;
    else
        return $term_slug;
}

结束

相关推荐

Custom Taxonomy Term Caching?

我有两种自定义帖子类型,“事件”和“机会”。它们共享一个自定义的层次分类法“位置”。我的客户添加了一些条款(美国(家长),然后是几个州(孩子))。我决定通过wp\\u insert\\u term添加其余的州来节省时间。这很有效!或者,看起来是这样。作为一名管理人员,这些条款对我来说很好。当我登录到一个“贡献者”帐户时,我可以去创建一个新的“机会”,所有的条件都如预期的那样显示出来。当要创建一个新的“事件”时,只会显示手工创建的术语。您可以通过“事件”在现场添加一个新术语,它在位置管理器中显示得很好。就好