WordPress子比主题给列表的文章加一个一级分类标识和修改置顶图标位置

想要给子比主题列表文章加一个分类标识,有的人说很难加,不知道在哪段代码中加,其实很简单,今天给大家说说到底怎么加

具体子比文件名:/zibll/inc/functions/zib-posts-list.php,大概是494行,if (!$_thumb) {开头

我们用代码编辑器,快速找到了$_thumb = zib_post_thumbnail('', 'fit-cover radius8');这段代码,没错他只是一个简单的变量,我们通过文本编辑器定位到这段代码后,那么就是改代码咯!

子比v7.6版本的代码是这样的

    if (!$_thumb) {
        $_thumb = zib_post_thumbnail('', 'fit-cover radius8');
        $_thumb = '<a' . $post_target_blank . ' href="' . $get_permalink . '">' . $_thumb . '</a>';
    }

想要改这玩意还不简单?想要加一级分类的标识那么首先就是要获取当前文章的一级分类名称及链接

if (!$_thumb) {
    $_thumb = zib_post_thumbnail('', 'fit-cover radius8');

    // 获取当前文章的一级分类名称和链接
    $categories = get_the_category();
    $first_category_name = '';
    $first_category_link = '';
    if ($categories) {
        $first_category = $categories[0];
        $first_category_name = $first_category->name;
        $first_category_link = get_category_link($first_category);
    }

    $_yjfl = '<a class="item-category" href="' . esc_url($first_category_link) . '">' . $first_category_name . '</a>';
    $_thumb = '<a' . $post_target_blank . ' href="' . $get_permalink . '">' . $_thumb . $_yjfl . '</a>';
}

我们把代码变成了上面这样,其中比较关键的变化就是,下面这段代码

    // 获取当前文章的一级分类名称和链接
    $categories = get_the_category();
    $first_category_name = '';
    $first_category_link = '';
    if ($categories) {
        $first_category = $categories[0];
        $first_category_name = $first_category->name;
        $first_category_link = get_category_link($first_category);
    }

很多人会说,看不懂啊,到底啥意思?那么我来给大家解释一下

  1. $categories = get_the_category();: 这行代码通过 get_the_category() 函数获取当前文章所属的所有分类,并将其存储在 $categories 变量中。
  2. $first_category_name = '';: 在这里初始化了一个变量 $first_category_name,用来存储当前文章的一级分类名称,默认为空字符串。
  3. $first_category_link = '';: 类似地,这里初始化了一个变量 $first_category_link,用来存储当前文章的一级分类链接,默认为空字符串。
  4. if ($categories) { ... }: 这个条件判断确保当前文章有分类信息。如果当前文章有分类信息,则执行后续操作。
  5. $first_category = $categories[0];: 将当前文章的第一个分类(即一级分类)赋值给 $first_category 变量。
  6. $first_category_name = $first_category->name;: 从 $first_category 中获取一级分类的名称,并将其存储在 $first_category_name 变量中。
  7. $first_category_link = get_category_link($first_category);: 使用 get_category_link() 函数获取一级分类的链接,并将其存储在 $first_category_link 变量中。

最后下面这段代码就好理解咯,设置变量名$_yjfl

$_yjfl = '<a class="item-category" href="' . esc_url($first_category_link) . '">' . $first_category_name . '</a>';

最后再插入到下面这段变量里

<a' . $post_target_blank . ' href="' . $get_permalink . '">' . $_thumb . $_yjfl . '</a>

最后附上相关CSS代码

.item-category {
position: absolute;
  left: 10px;
  top: 10px;
  border-radius: 2px;
  background: rgba(0, 0, 0, .6);
  padding: 4px 8px;
  font-size: 12px;
  line-height: 14px;
  color: #fff;
}

.item-category:hover {
  background: var(--focus-color);
   color: #fff;
}

在完成上面代码的修改后,我们需要将置顶图标按钮调整位置,我们可以加入到文章列表的标题前面

那么我们通过代码文本编辑器在zib-posts-list.php文件里搜索置顶,这个时候会自动显示具体位置,那么我们将他进行删除,具体的置顶代码如下

    $sticky = is_sticky() ? '<div class="sticky-post">置顶</div>' : '';

    $get_permalink = get_permalink();
    $_post_target_blank = _post_target_blank();
    $title = get_the_title() . get_the_subtitle(true, 'focus-color');

然后在zib-posts-list.php文件找到function zib_get_posts_list_title($class = 'item-heading')这段函数(具体在436行)

我们将这段函数进行修改为下面代码

//获取文章列表的标题
function zib_get_posts_list_title($class = 'item-heading')
{
    $sticky = is_sticky() ? '<span class="sticky-post">置顶</span>' : '';

    $get_permalink = get_permalink();
    $_post_target_blank = _post_target_blank();
    $title = get_the_title() . get_the_subtitle(true, 'focus-color');

    $html = '<h2 class="' . $class . '"><a' . $_post_target_blank . ' href="' . $get_permalink . '">' . $sticky . $title . '</a></h2>';
    return $html;
}

相关的CSS代码:

.sticky-post{
display: inline-block;
  padding: 0 5px;
  margin-top: 3px;
  font-size: 12px;
  font-weight: 400;
  line-height: 20px;
  color: #fff;
  background: var(--theme-color);
  border-radius: 2px;
  vertical-align: top;
  margin-right: 10px;
}

最后成品:

图片[1]-WordPress子比主题给列表的文章加一个一级分类标识和修改置顶图标位置-GOdou社区
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
发表回复 共1条

请登录后发表评论