在 wordpress 中重命名我的自定义帖子类型的 slug 不再起作用并保留旧的 slug [英] Renaming the slug of my custom post type in wordpress doesnt work anymore and keeps the old slug
问题描述
我已经在 Wordpress 主题上工作了几个星期,但我面临以下问题:我有一个名为指南"的自定义帖子类型,我使用重写 slug 将其更改为stappenplan".现在我想将其更改为应用程序",但重写不起作用.它甚至没有到达很奇怪的 Archive.php 文件.我正在使用以下代码注册我的自定义帖子类型.
I have been working on a Wordpress theme for a few weeks now and i am facing the following problem: I have a custom post type called "Guide" and I used the rewrite slug to change this to "stappenplan". Now I would like to change this to "application" but the rewrite doesnt work. it doesnt even reach the Archive.php file which is weird. I am using the following code to register my custom post type.
$guides = new \KC\ContentType('Guide',
['rewrite' => ['slug' => 'application'],'menu_icon' => get_template_directory_uri().'/img/icons/application.svg','has_archive' => true],
['plural_name' => 'Applications']);
和一个如下所示的辅助类:
and a helper class which looks as follows:
<?php
namespace KC;
class ContentType {
public $type;
public $options = [];
public $labels = [];
/**
* Creates a new ContentType object
* @param string $type
* @param array $options
* @param array $labels
*/
public function __construct($type, $options = [], $labels = []) {
$this->type = $type;
$default_options = [
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => ['slug' => strtolower($type)],
'capability_type' => 'page',
'has_archive' => true,
'hierarchical' => true,
'taxonomies' => ['post_tag','category'],
'supports' => ['title', 'editor', 'revisions', 'thumbnail','page-attributes','excerpt']
];
$required_labels = [
'singular_name' => ucwords($this->type),
'plural_name' => ucwords($this->type)
];
$this->options = $options + $default_options;
$this->labels = $labels + $required_labels;
$this->options['labels'] = $labels + $this->default_labels();
add_action('init', array($this, 'register'));
}
/**
* Registers the content type using WP core function(s)
* @return null
*/
public function register() {
register_post_type($this->type, $this->options);
}
/**
* Creates intelligent default labels from the required singular and plural labels
* @return array
*/
public function default_labels() {
return [
'name' => $this->labels['plural_name'],
'singular_name' => $this->labels['singular_name'],
'add_new' => 'Add New ' . $this->labels['singular_name'],
'add_new_item' => 'Add New ' . $this->labels['singular_name'],
'edit' => 'Edit',
'edit_item' => 'Edit ' . $this->labels['singular_name'],
'new_item' => 'New ' . $this->labels['singular_name'],
'view' => 'View ' . $this->labels['singular_name'] . ' Page',
'view_item' => 'View ' . $this->labels['singular_name'],
'search_items' => 'Search ' . $this->labels['plural_name'],
'not_found' => 'No matching ' . strtolower($this->labels['plural_name']) . ' found',
'not_found_in_trash' => 'No ' . strtolower($this->labels['plural_name']) . ' found in Trash',
'parent_item_colon' => 'Parent ' . $this->labels['singular_name']
];
}
}
希望这只是我的问题,而不是 Wordpress 的问题.
Hopefuly this is just my bad and not a Wordpress issue.
推荐答案
我自己解决了这个问题,方法是转到 wordpress cms 中的 Settings->permalinks 并将设置更改为不同的设置.执行此操作后保存并刷新您的页面.
I solved the problem myself by going to Settings->permalinks in the wordpress cms and changing the setting to a different one. Save it after doing this and refres your page.
解决了我的问题后改回来!
Changing it back after this solved my problem!
这篇关于在 wordpress 中重命名我的自定义帖子类型的 slug 不再起作用并保留旧的 slug的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!