#wordpress #seo #custom-post-type
#wordpress #seo #пользовательский тип записи
Вопрос:
Я быстро просмотрел похожие вопросы, но большинство из них, похоже, на самом деле не отвечают на мой вопрос.
У меня есть пользовательский тип сообщения, который называется Products. Внутри у меня есть таксономии, такие как тип комнаты, тип мебели, Материал и т. Д. И т. Д.
Для сайта требуется действительно конкретная структура URL-адресов, чтобы соответствовать его стратегии SEO.
На данный момент я получаю что-то вроде этого:
/room-type/handles/bathroom
/room-type/handles/kitchen
/room-type/handles/modern
По сути, мне нужно удалить тип номера. Я попытался установить для «with_front» значение false при регистрации таксономии, но безуспешно.
Ниже приведен мой текущий код, любая помощь очень ценится.
register_taxonomy(
'room-type',
'products',
array(
'label' => __( 'Room Type' ),
'rewrite' => array(
'slug' => 'room-type',
'with_front' => true,
'hierarchical' => true,
),
'hierarchical' => true,
)
);
Обновить
Итак, я немного покопался и нашел эту страницу: https://wordpress.stackexchange.com/questions/5413/need-help-with-add-rewrite-rule
… и это код, с которым я закончил, который на данный момент кажется самым близким к тому, что я придумал:
function sb_rewrites() {
add_rewrite_rule( 'handles/([^/] )/?', 'index.php?room-type=$matches[1]', 'top' );
}
add_action( 'init', 'sb_rewrites', 10, 0 );
function strip_room_type( $link, $term, $taxonomy ){
if ( $taxonomy !== 'room-type' )
return $link;
return str_replace( 'room-type/', '', $link );
}
add_filter( 'term_link', 'strip_room_type', 10, 3 );
Спасибо!
Ответ №1:
Насколько я понимаю ваш вопрос, я не уверен, что есть идеальный способ удалить эту таксономическую ошибку. WordPress должен знать, какую под-таксономию вы запрашиваете в URL, поэтому ему нужен какой-то идентификатор. Однако, похоже, что в ответе на аналогичный вопрос может быть обходной путь:
https://wordpress.stackexchange.com/questions/21076/remove-taxonomy-base-or-term-from-url
По сути, определение подробных правил перезаписи, чтобы «вытеснить» термин. Но это может вызвать проблемы, которые лучше объяснены в принятом ответе здесь:
https://wordpress.stackexchange.com/questions/42120/remove-slug-in-taxonomy-url
Комментарии:
1. Спасибо за это, приятель! Я попытался использовать одно из решений, описанных в первой ссылке — к сожалению, похоже, что оно нарушает работу моего сайта. Придется копать немного глубже!