Вопрос или проблема
Я новенький в WordPress. Я wondering, есть ли способ получить ID категории в перманентной ссылке? Моя текущая перманентная ссылка:
http:///example.com/%category%/%post_id%-%postname%.html
http:///example.com/music/1-hello.html
Теперь мой ID категории музыки – 2, как добавить этот ID категории в перманентную ссылку? Я хочу это:
http:///example.com/2-music/1-hello.html
=> Создать пользовательскую таксономию
Сначала мы создаем объект пользовательской таксономии под названием rating с помощью функции register_taxonomy
WordPress.
add_action( 'init', 'my_rating_init' );
function my_rating_init() {
if ( ! is_taxonomy( 'rating' ) ) {
register_taxonomy(
'rating',
'post',
array(
'hierarchical' => FALSE,
'label' => __( 'Рейтинг' ),
'public' => TRUE,
'show_ui' => TRUE,
'query_var' => 'rating',
'rewrite' => true
)
);
}
}
Установка 'rewrite' => true
автоматически добавит тег %rating%
в нашу систему WordPress.
Да, это возможно добавить ID категории в вашу перманентную ссылку в WordPress. Вы можете использовать следующий код в своем файле functions.php
, чтобы добавить ID категории в структуру перманентной ссылки:
function add_category_id_to_permalink( $post_link, $post ) {
if ( is_object( $post ) && $post->post_type == 'post' ) {
$terms = wp_get_object_terms( $post->ID, 'category' );
if( $terms ) {
return str_replace( '%category%', $terms[0]->term_id . '-' . $terms[0]->slug, $post_link );
}
}
return $post_link;
}
add_filter( 'post_link', 'add_category_id_to_permalink', 10, 2 );
Этот код добавит ID и слуг первой категории в структуру перманентной ссылки. Просто убедитесь, что вы обновили структуру перманентной ссылки в настройках WordPress, чтобы включить %category%
перед добавлением этого кода.
Ответ или решение
Чтобы добавить идентификатор категории в структуру постоянной ссылки (переменной ссылки) в WordPress, вам необходимо внести некоторые изменения в файл functions.php
вашей темы. Ниже приводится пошаговое руководство, которое поможет вам достичь желаемого результата.
Шаг 1: Настройка структуры постоянной ссылки
Сначала убедитесь, что ваша структура постоянной ссылки в WordPress настроена правильно. Перейдите в параметры WordPress и выберите "Настройки" → "Постоянные ссылки". Убедитесь, что в выбранной структуре используется переменная %category%
. Например, ваша структура должна быть такой:
/%category%/%post_id%-%postname%.html
Шаг 2: Добавление кода в файл functions.php
Откройте файл functions.php
вашей активной темы и добавьте следующий код:
function add_category_id_to_permalink($post_link, $post) {
// Проверим, является ли пост объектом и является ли он типом 'post'
if (is_object($post) && $post->post_type == 'post') {
$terms = wp_get_object_terms($post->ID, 'category'); // Получаем категории поста
if ($terms) {
// Если категории найдены, заменяем %category% на ID и slug первой категории
return str_replace('%category%', $terms[0]->term_id . '-' . $terms[0]->slug, $post_link);
}
}
return $post_link; // Возвращаем ссылку без изменений, если категории не найдены
}
add_filter('post_link', 'add_category_id_to_permalink', 10, 2);
Этот код выполняет следующие действия:
- Проверяет, является ли пост объектом и соответствует ли он типу
post
. - Извлекает категории, к которым относится данный пост, с помощью функции
wp_get_object_terms()
. - Если категории найдены, заменяет
%category%
в структуре постоянной ссылки на идентификатор и слуг первой категории. - Если категории не найдены, возвращает исходную ссылку без изменений.
Шаг 3: Обновление структуры постоянной ссылки
После добавления этой функции, рекомендуется перейти к настройкам постоянных ссылок и просто нажать "Сохранить изменения". Это поможет обновить структуру ссылок и применить новые настройки.
Заключение
Теперь ваша структура постоянной ссылки должна выглядеть так:
http:///example.com/2-music/1-hello.html
где "2" – это идентификатор категории, а "music" – слуг категории. Обратите внимание, что в этом примере мы используем только первую категорию поста. Если вам необходимо добавлять идентификаторы других категорий, вам потребуется изменить логику кода соответственно.
Эти изменения помогут улучшить SEO вашего сайта, так как идентификаторы категорий могут способствовать более строгой организации контента и облегчат пользователям навигацию по вашему сайту.