Wordpress 自定义帖子类型永久链接

时间:2021-05-21 21:24:22

标签: wordpress custom-post-type permalinks

我正在尝试为自定义帖子类型创建特定的 URL 结构,但不确定这是否可行,或者可能与主博客的永久链接结构相冲突。

我正在使用 2 个插件:

  1. 自定义帖子类型用户界面
  2. 自定义帖子类型固定链接

我创建了一个自定义帖子类型(资源),并附加了自定义分类法(主题)。我的目标是让网址看起来像这样:

  • 域/资源/ - 索引(我可以让它工作)
  • 域/资源/钓鱼 - 分类索引(这是 404ing)
  • domain/resources/fishing/some-single-post - 单个帖子项目(我可以让它工作)

(从 url 中删除分类标头)

该博客遵循相同的结构并且正在运行:

  • 域/博客/ - 索引
  • domain/blog/some-category - 猫索引
  • domain/blog/some-category/some-single-post - 单个帖子

以下是 CPT 和税收设置供参考:

/**
 * Post Type: Resources.
 */

$labels = [
    "name" => __( "Resources", "custom-post-type-ui" ),
    "singular_name" => __( "Resource", "custom-post-type-ui" ),
];

$args = [
    "label" => __( "Resources", "custom-post-type-ui" ),
    "labels" => $labels,
    "description" => "",
    "public" => true,
    "publicly_queryable" => true,
    "show_ui" => true,
    "show_in_rest" => true,
    "rest_base" => "",
    "rest_controller_class" => "WP_REST_Posts_Controller",
    "has_archive" => true,
    "show_in_menu" => true,
    "show_in_nav_menus" => true,
    "delete_with_user" => false,
    "exclude_from_search" => false,
    "capability_type" => "post",
    "map_meta_cap" => true,
    "hierarchical" => false,
    "rewrite" => [ "slug" => "resources", "with_front" => false ],
    "query_var" => true,
    "supports" => [ "title", "editor", "thumbnail" ],
    "taxonomies" => [ "topic" ],
    "show_in_graphql" => false,
];

register_post_type( "resources", $args );



/**
 * Taxonomy: Topics.
 */

$labels = [
    "name" => __( "Topics", "custom-post-type-ui" ),
    "singular_name" => __( "Topic", "custom-post-type-ui" ),
];


$args = [
    "label" => __( "Topics", "custom-post-type-ui" ),
    "labels" => $labels,
    "public" => true,
    "publicly_queryable" => true,
    "hierarchical" => false,
    "show_ui" => true,
    "show_in_menu" => true,
    "show_in_nav_menus" => true,
    "query_var" => true,
    "rewrite" => [ 'slug' => '.', 'with_front' => true, ],
    "show_admin_column" => true,
    "show_in_rest" => true,
    "rest_base" => "topic",
    "rest_controller_class" => "WP_REST_Terms_Controller",
    "show_in_quick_edit" => true,
    "show_in_graphql" => false,
];
register_taxonomy( "topic", [ "resources" ], $args );

0 个答案:

没有答案