在 wordpress 中重命名我的自定义帖子类型的 slug 不再起作用并保留旧的 slug [英] Renaming the slug of my custom post type in wordpress doesnt work anymore and keeps the old slug

查看:28
本文介绍了在 wordpress 中重命名我的自定义帖子类型的 slug 不再起作用并保留旧的 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆