在WordPress中,你可以同时定义多个自定义文章类型(Custom Post Types)的固定链接。每个自定义文章类型都可以有自己的固定链接结构。以下是如何为多个自定义文章类型定义固定链接的步骤:
register_post_type()
函数来注册你的自定义文章类型。你可以在主题的functions.php文件或一个自定义插件中执行此操作。例如:function custom_post_type_example() {
$args = array(
'labels' => array(
'name' => '自定义文章类型1',
'singular_name' => '自定义文章1',
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'customposttype1'),
);
register_post_type('custom_post_type_1', $args);
$args = array(
'labels' => array(
'name' => '自定义文章类型2',
'singular_name' => '自定义文章2',
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'customposttype2'),
);
register_post_type('custom_post_type_2', $args);
}
add_action('init', 'custom_post_type_example');
上述代码中,我们注册了两个不同的自定义文章类型,并为每个类型定义了自己的固定链接结构。
刷新固定链接结构:在你注册了自定义文章类型后,你需要在WordPress后台刷新固定链接结构,以便新的固定链接规则生效。你可以在WordPress后台的“设置” > “固定链接”页面点击“保存更改”按钮来完成这个步骤。
设置固定链接结构:在你刷新了固定链接结构之后,你可以为每个自定义文章类型设置不同的固定链接结构。这可以在自定义文章类型的注册代码中的rewrite
参数中完成。例如,我们在注册代码中已经为两个自定义文章类型定义了不同的slug,现在我们可以设置它们的固定链接结构:
function custom_post_type_permalink($post_link, $post) {
if ($post>post_type == 'custom_post_type_1') {
return home_url('/customposttype1/' . $post>post_name . '/');
} elseif ($post>post_type == 'custom_post_type_2') {
return home_url('/customposttype2/' . $post>post_name . '/');
}
return $post_link;
}
add_filter('post_type_link', 'custom_post_type_permalink', 10, 2);
上述代码中,我们使用post_type_link
过滤器来根据文章类型为每个自定义文章类型定义不同的固定链接结构。
现在,你的两个自定义文章类型应该有不同的固定链接结构。例如,自定义文章类型1的文章将具有类似yoursite.com/customposttype1/posttitle/
的固定链接,而自定义文章类型2的文章将具有类似yoursite.com/customposttype2/posttitle/
的固定链接。确保你的自定义文章类型slug和rewrite规则与你的需求相匹配。