如何在帖子标题旁边添加类别?

时间:2012-02-04 作者:Trevor

在WordPress的主页上,我想要的只是文章标题之前的类别。例如,如果这是一篇评论,我希望文章名为Review:Super 8。

好的,如果你访问我的网站www.r3entertainment。org在主页上显示每篇文章的名称。我想要的是,将文章所属类别的名称放在主页标题之前,以便人们知道它是什么类型的文章。

主页上的文章名称并不是指“最新内容”小部件。我是指出现在巨大滑块框下方的框。每个盒子里都有不同的物品。我的意思是,如果你能让它也影响到最新的内容小部件,那就太酷了。我没想过。xD公司

谢谢

新代码如下所示:

<!--THE POST-->
$getCAT = get_the_category();
$firstCAT = $currentCat[0]->cat_name;<?php if(have_posts()): ?><?php while(have_posts()): ?><?php the_post(); ?>
            <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> 
             <div class="date"><div class="date_content"><?php the_time(\'dS\'); ?> <?php the_time(\'M\'); ?><span><?php the_time(\'Y\'); ?></span></div></div>
               <div class="post_content">
                <h2 class="postitle"><a href="<?php the_permalink();?>"><?php the_title( $firstCAT,"",true ); ?> </a></h2>
                <div class="single_metainfo">by <?php the_author(); ?></div>
                <?php the_content(); ?>
                <?php wp_link_pages(\'<p class="pages"><strong>\'.__(\'Pages:\').\'</strong> \', \'</p>\', \'number\'); ?>
            </div> 
我做错什么了吗?

3 个回复
SO网友:Mere Development

您已经对缺乏细节发表了评论,因此我将尝试猜测您想要做什么。

假设您在“循环”中,并且您的标题与以下内容相互呼应:

<?php the_title(); ?>
。。首先显示标题的最简单方法是:

<?php 
$catobjarray = get_the_category(); 
if($catobjarray[0]){ echo $category[0]->cat_name;}
?>
此方法的注意事项:由于帖子可以属于多个类别,此代码将仅显示帖子所在的第一个类别。

查看get\\u the\\u category()的法典HERE.

SO网友:Mamaduka

其他代码片段的主要问题是get_the_cagetory() 函数外循环,是的,你可以这样使用它,但是通过$post->ID 参数明智的做法是将代码片段放在循环中,避免不必要的全局调用。

在这之后,特雷弗的循环是这样的:

<!-- The Loop -->
<?php if( have_posts() ): while(have_posts()): the_post(); ?>
    <div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> 
        <div class="date"><div class="date_content"><?php the_time(\'dS\'); ?> <?php the_time(\'M\'); ?><span><?php the_time(\'Y\'); ?></span></div></div>
            <div class="post_content">
            <?php $category = get_the_category();
            $first_cat = ( !empty( $category[0] ) ) ? $category[0]->cat_name : \'\'; ?>
            <h2 class="postitle"><a href="<?php the_permalink();?>"><?php the_title( "$first_cat: " ); ?></a></h2>
                <div class="single_metainfo">by <?php the_author(); ?></div>
                <?php the_content(); ?>
                <?php wp_link_pages(\'<p class="pages"><strong>\'.__(\'Pages:\').\'</strong> \', \'</p>\', \'number\'); ?>
            </div> 
注意后面的行<div class="post_content">.

我的第二个解决方案是使用the_title 滤器

function mamaduka_category_perefix_title( $title, $id ) {
    $category = get_the_category( $id );

    if ( ! empty( $category[0] ) )
        $title = sprintf( \'%1$s: %2$s\', $category[0]->cat_name, $title );

    return $title;
}
add_filter( \'the_title\', \'mamaduka_category_perefix_title\', 10, 2 );

But this code has side effect. It will prefix every title inside the loop, including widgets like "Recent Posts".

SO网友:Sufiyan Ghori

实现预期结果的最简单方法是,

$getCAT = get_the_category();
$firstCAT = $currentCat[0]->cat_name;
<?php the_title( $firstCAT,"",true ); ?> 
$getCAT:获取发布当前帖子的类别列表$firstCAT:存储当前帖子的第一个类别(如果帖子发布在多个类别中)

第三行代码是默认代码wordpress title 函数,允许您在wordpress标题之前/之后添加内容,因此我只需传递$firstCAT作为\\u标题中的参数

代码经过测试,工作正常,它输出以下内容,

[张贴帖子的类别][帖子标题]

用法:

位置

 $getCAT = get_the_category();
    $firstCAT = $currentCat[0]->cat_name;
之前<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

然后在索引中找到这行代码。php或单个。php,

<?php the_title(); ?>
替换为,

<?php the_title( $firstCAT,"",true ); ?> 

结束

相关推荐

如何从小部件管理面板内的Get_Categories()选择列表中排除类别

我有一个小部件,我需要添加一个类别选择列表。最终用户应该能够选择一个类别,我需要用小部件保存类别ID。我遇到了一个绊脚石,因为我无法使排除数组正常工作。被排除在外的猫仍会出现在下拉列表中。我做错了什么?function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( \'title\' => \'\', \'text\' => \'\', \'hide_title\' =>