返回

为自定义帖子类型添加自定义分类法术语 Slug:分步指南

php

为自定义帖子类型添加自定义分类法术语 Slug

简介

分类法术语 Slug 在组织 WordPress 中自定义帖子类型的内容时至关重要。本指南将深入探究如何将自定义分类法术语 Slug 添加到自定义帖子类型中,并解决实施过程中可能遇到的问题。

步骤

1. 创建自定义帖子类型和分类法

使用 ACF 创建自定义帖子类型“活动”和自定义分类法“季节”。为自定义帖子类型配置适当的 permalink 结构,并保留自定义分类法术语的默认 Slug 值。

2. 自定义帖子类型 Permalink

将以下代码段添加到 functions.php 文件中,以自定义“活动”帖子类型的 permalink 结构:

function custom_post_type_permalink($permalink, $post, $leavename) {
    if ($post->post_type == 'activity') {
        $terms = wp_get_post_terms($post->ID, 'season');
        if (!empty($terms) && !is_wp_error($terms)) {
            $season_slug = $terms[0]->slug;
            $permalink = str_replace( '%season%' , $season_slug , $permalink );
        }
    }
    return $permalink;
}
add_filter('post_type_link', 'custom_post_type_permalink', 10, 3);

常见问题

1. 404 错误

这可能是因为默认帖子类型页面的 permalink 结构仍使用旧值。更新所有默认帖子类型页面的 permalink。

2. 可选季节

要使季节可选,请修改代码段如下:

function custom_post_type_permalink($permalink, $post, $leavename) {
    if ($post->post_type == 'activity') {
        $terms = wp_get_post_terms($post->ID, 'season');
        if (!empty($terms) && !is_wp_error($terms)) {
            $season_slug = $terms[0]->slug;
            $permalink = str_replace( '%season%' , $season_slug , $permalink );
        } else {
            $permalink = str_replace( '%season%' , '' , $permalink );
        }
    }
    return $permalink;
}

结论

通过遵循这些步骤,你可以将自定义分类法术语 Slug 成功添加到自定义帖子类型中。遵循提供的指南和排除故障步骤,确保顺利实现。

常见问题解答

  1. 为什么使用自定义分类法术语 Slug 很重要?
    自定义 Slug 提供了一种有意义的方式来组织内容,提高 SEO,并改善用户体验。

  2. 如何获取分类法术语 Slug?
    通过 wp_get_post_terms() 函数从帖子对象中获取分类法术语 Slug。

  3. permalink 结构可以自定义吗?
    是的,你可以使用自定义代码段来自定义帖子类型的 permalink 结构。

  4. 如果我需要为多种分类法创建 Slug 怎么办?
    重复代码段并针对每个分类法定制替换文本。

  5. 如果我遇到问题怎么办?
    检查你的代码段是否存在错误,并确保已正确配置自定义帖子类型和分类法。