Wordpress пытается получить архив несуществующей категории
Вкратце, я переместил некоторые статьи по умолчанию для типа post-type. И теперь мои статьи доступны с использованием старого www.example.com/articleurl/
и нового URL www.example.com/blog/articleurl/
.
Возникла проблема: клиент добавил статью с адресом 2093. И он доступен с помощью www.example.com/blog/2093/
. Но когда я пытаюсь получить его с помощью www.example.com/2093/
, Wordpress пытается получить некоторый архив 2093 года или категории (кстати, нет такой категории), а затем перенаправляется на индексную страницу.
Итак, как это решить?
Нет, я не могу изменить URL этой статьи. Мне нужно оставить его 2093
.
Да, мне нужна эта иерархия моего сайта, и мне нужен пользовательский тип сообщения.
Ответы
Ответ 1
Создайте файл с именем archive-2093.php в корне вашей темы и добавьте следующий код:
<?php
$args = array (
'name' => '2093',
'post_type' => array( 'blog' ),
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
// adapt the following to suit the formatting and fields of your post.
the_title();
the_content();
}
} else {
// oh no, it didn't work.
}
// Restore original Post Data
wp_reset_postdata();
Вам нужно будет адаптировать цикл в соответствии с любым макетом и структурой, которые вы используете в single.php или blog-single.php. Концепция здесь состоит в том, чтобы создать конкретный архив за 2093 год, а затем просто выполнить пользовательский запрос, чтобы вернуть сообщение.
Не забудьте обновить свой код в 2093 году.
Ответ 2
Wordpress, не обслуживающий страницу за /2093, имеет смысл. Наличие страницы в /blog/ 2093 AND on/2093 будет считаться дублированным контентом, который не рекомендуется SEO. (Может быть исправлено с каноническими тегами)
В приведенном выше решении предлагается использовать новый файл шаблонов, который добавляется в обслуживание. Мое предложение состояло в том, чтобы просто добавить перенаправление из /2093 в/blog/2092. Это перенаправление должно работать до того, как Wordpress попытается проанализировать его как архив. Это можно сделать в файле .htaccess, но я рекомендую использовать плагин перенаправления. (Yoast включил это)
Если URL-адрес как /2093 необходим, просто добавьте его как обычную страницу вместо элемента блога.
Ответ 3
Viper007Bond создал плагин, который может помочь в вашей проблеме.
https://wordpress.org/plugins/allow-numeric-stubs/
Кроме того, было бы полезно, если бы вы использовали структуру постоянной ссылки, которую вы используете.
Удачи!