“新闻”和“流言”是“意大利”和“英国”的两个亚类。
https://example.com/news/italy
https://example.com/news/uk
https://example.com/gossip/italy
https://example.com/gossip/uk从旧数据库导入所有内容,创建的结构就不一样了。
https://example.com/news/italy
https://example.com/news/uk-news
https://example.com/gossip/italy
https://example.com/gossip/uk-gossip有办法复制和保存旧的URL结构吗?
发布于 2020-03-24 14:02:24
您将无法在WordPress中使用常规类别,因为类别都必须有唯一的段塞。
但是,您仍然可以实现这个URL结构。您至少需要创建一个自定义post类型。我建议将“新闻”类作为常规核心帖子,并创建一个名为“绯闻”的自定义邮报类型。
您可以使用您自己的自定义插件创建此插件。将此代码保存为“/wp-content/plugins/create-闲聊-cpt/”中的“create-roggs-cpt.php”:
<?php
/* Plugin Name: Create Gossip CPT */
// Run everything when the plugin is activated
register_activation_hook(__FILE__, 'wpse_361317_activation');
function wpse_361317_activation() {
// (You may have to play around with the settings)
register_post_type('gossip',
array(
// Plural, human-readable label for menu
'label' => 'Gossip Articles',
// Show in REST API must be true for the Block Editor
'show_in_rest' => true,
// Enable Title, Editor, and Excerpt
'supports' => array('title', 'editor', 'excerpt'),
// has_archive will create http://example.com/gossip/
// much like a Post Category archive
'has_archive' => 'gossip'
)
);
}
?>这将给你基本的结构。您将有一个新的“绯闻”项目在wp-admin的左导航窗口,类似于您目前有“帖子”。
接下来你将面临一个选择。您可以使这个post类型是分层的,在这种情况下,您将拥有http://example.com/gossip/italy,这将是一个CPT本身。在这种情况下,您将手动管理所有内容。这可能不是您想要的,但是设置它的代码已经在上面了。
如果您希望它是分配给一个名为“意大利”的“绯闻”类别的所有“绯闻”项目的存档,并自动列出所有相关的帖子,您将不得不创建自定义分类法,将其分配给CPT,并设置URL重写。从这里开始,如果您需要其他部分的帮助,您可能会在回答的问题中找到其他部分的代码。
https://wordpress.stackexchange.com/questions/361317
复制相似问题