WordPress类别:如何在单个帖子中显示名称,子词,描述和链接?

时间:2018-06-19 12:13:00

标签: php wordpress categories

我想做的是在single.php中,分别拉出类别的不同属性,如下所示:

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>

        <a class="CATEGORYSLUG" href="CATEGORYLINK">
            <i class="fas CATEGORYDESCRIPTION"></i>
            <span>CATEGORYNAME</span>
        </a>

    <?php endwhile; ?>
<?php endif; ?>

要生产这样的最终产品:

enter image description here

以便我可以使用:

  1. 将类别 slug 作为CSS类,以为每个类别设置独特的颜色
  2. 类别描述作为Font Awesome类(在本例中为“ fa-wrench”),为每个类别分配一个唯一的图标

(对于该项目,每个帖子将只分配一个类别,但是我想一个面向未来的解决方案将需要以这种格式输出分配给该帖子的所有类别。)

所以我真的只需要知道如何单独拉动:

  1. 子弹头
  2. 类别链接
  3. 类别说明
  4. 类别名称

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码获取此信息。

$postcat = get_the_category( $post->ID );

它返回您要获取更多信息的所有字段,请参考此https://developer.wordpress.org/reference/functions/get_the_category/

答案 1 :(得分:0)

您可以使用get_the_terms()函数获取分配给该发布对象的所有类别,并循环浏览每个类别以创建图标等。

下面是一个示例,我已经调用了每个单独的变量,以便您可以清楚地看到对象属性。

如果您只分配了一个类别,这也将起作用。

//get all categories:
$categories = get_the_terms(get_the_ID(), 'category');

//loop through categories
foreach ($categories as $category) {
    //get variables
    $slug   = $category->slug;
    $link   = get_term_link($category->term_id);
    $descr  = $category->description;
    $name   = $category->name;

    //echo your content
    echo '<a class="'.$slug.'" href="'.$link.'"><i class="fas '.$descr.'"></i><span>'.$name.'</span></a>';
}