Заменить постоянную ссылку пользовательского типа записи

Вопрос или проблема

Я совсем нов в WordPress и хотел бы знать, что я делаю не так:

Я создал пользовательский тип поста, назовем его custom_post_type_jobs.

И у меня есть страница, которая называется jobs.

Когда я создаю пост типа custom post type, он имеет постоянную ссылку вида: …/custom_post_type_jobs/post-title.

Поскольку у меня есть шорткод на странице “jobs”, который отображает некоторые вещи, я хотел бы отобразить посты там, а при нажатии на них хочу, чтобы структура была следующей: /jobs/post-title.

Я здесь что-то упустил?

При создании пользовательского типа поста я указал следующие аргументы:

'rewrites' => array(
  'slug' => 'jobs'
 ),

Ух ты, я только что осознал: аргумент ‘rewrites’ был неверным. Это rewrite. Спасибо всем.

Чтобы заменить структуру постоянной ссылки для пользовательского типа поста в WordPress, вы можете использовать следующий код в файле functions.php вашей темы:

add_filter( 'post_type_link', 'replace_custom_post_type_permalink', 10, 4 );
function replace_custom_post_type_permalink( $post_link, $post, $leavename, $sample ) {
    if ( 'custom_post_type' === $post->post_type ) {
        $slug = 'custom-post-type';
        $post_link = str_replace( '%' . $post->post_type . '%', $slug, $post_link );
    }
    return $post_link;
}

В этом примере структура постоянной ссылки для пользовательского типа поста определяется с помощью пользовательского маркера, %custom_post_type%, в настройках постоянной ссылки. Код заменяет маркер на пользовательскую строку, custom-post-type, в постоянной ссылке для каждого поста этого пользовательского типа.

Примечание: Убедитесь, что заменили “custom_post_type” на фактическое имя вашего пользовательского типа поста и “custom-post-type” на желаемую структуру постоянной ссылки.

Ответ или решение

Чтобы заменить структуру постоянных ссылок для настраиваемого типа записи в WordPress, необходимо немного изменить предоставленный код. Сначала убедимся, что команда, создающая настраиваемый тип записи, правильно написана и настроена на использование нужной структуры URL. Далее мы объясним, как это исправить.

Шаг 1: Создание настраиваемого типа записи

Начнем с корректного создания настраиваемого типа записи в вашем functions.php файле. Важно, чтобы в аргументах была указана правильная структура перезаписи:

function create_custom_post_type() {
    register_post_type('custom_post_type_jobs', array(
        'labels' => array(
            'name' => __('Работы'),
            'singular_name' => __('Работа'),
        ),
        'public' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'jobs'), // Здесь указываем 'rewrite', а не 'rewrites'
        'supports' => array('title', 'editor', 'excerpt', 'thumbnail'),
    ));
}
add_action('init', 'create_custom_post_type');

Шаг 2: Перезапись постоянных ссылок

Теперь, чтобы изменить структуру постоянной ссылки, используем фильтр post_type_link. Это позволит нам настроить формат ссылок, создавая нужную структуру /jobs/post-title.

add_filter('post_type_link', 'replace_custom_post_type_permalink', 10, 4);
function replace_custom_post_type_permalink($post_link, $post, $leavename, $sample) {
    if ('custom_post_type_jobs' === $post->post_type) { // Обратите внимание на имя типа записи
        $post_link = str_replace('%custom_post_type_jobs%', 'jobs', $post_link); // Заменяем ссылку
    }
    return $post_link;
}

Шаг 3: Настройка свойств постоянных ссылок

После внесения изменений рекомендуется обновить настройки постоянных ссылок. Для этого:

  1. Перейдите в административную панель WordPress.
  2. Выберите раздел "Настройки" > "Постоянные ссылки".
  3. Ничего не меняя, просто нажмите "Сохранить изменения". Это обновит структуру ссылок и применит изменения.

Заключение

Теперь при создании настраиваемых записей (custom_post_type_jobs) ссылки должны формироваться в виде /jobs/post-title, что позволит вам использовать их в вашем шорткоде и других местах, где это необходимо.

Важно помнить, что настраиваемые типы записей в WordPress значительно упрощают управление контентом, и правильная настройка постоянных ссылок поможет вам улучшить SEO-оптимизацию и навигацию по вашему сайту. Применяйте данные знания для создания более понятной и удобной структуры ссылок.

Оцените материал
Добавить комментарий

Капча загружается...