2016-08-06 3 views
11

Короче говоря, я переместил некоторые статьи из постсоветского типа по умолчанию в пользовательский тип сообщения. И теперь мои статьи доступны с использованием старого www.example.com/articleurl/ и нового URL-адреса www.example.com/blog/articleurl/.Wordpress пытается получить архив несуществующей категории

Возникла проблема: клиент добавил статью с адресом 2093. И он доступен с помощью www.example.com/blog/2093/. Но когда я пытаюсь получить его с помощью www.example.com/2093/, Wordpress пытается получить архив 2093 года или категории (кстати, такой категории нет), а затем перенаправляется на страницу индекса.

Итак, как это решить?

Нет, я не могу изменить URL этой статьи. Мне нужно оставить его 2093.

Да, мне нужна эта иерархия моего сайта, и мне нужен пользовательский тип сообщения.

ответ

2

Создайте файл с именем архива-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(); 

Вы должны будете адаптировать цикл, чтобы соответствовать любой макет и структура вы используете в одиночном .php или blog-single.php. Концепция здесь состоит в том, чтобы создать конкретный архив для 2093 года, а затем просто выполнить пользовательский запрос, чтобы вернуть сообщение.

Только не забудьте обновить свой код в году 2093.

2

Wordpress не обслуживает страницы над/2093 имеет смысл. Наличие страницы в/blog/2093 AND on/2093 будет считаться дублированным контентом, который не рекомендуется SEO. (Может быть исправлено с каноническими тегами)

Вышеупомянутое решение предполагает использование нового файла шаблонов, который добавляется в обслуживание. Мое предложение состояло в том, чтобы просто добавить перенаправление из/2093 в/blog/2092. Это перенаправление должно работать до того, как Wordpress попытается проанализировать его как архив. Это можно сделать в файле .htaccess, но я рекомендую использовать плагин перенаправления. (У Yoast есть это)

Если URL-адрес как/2093 необходим, просто добавьте это как обычную страницу вместо элемента блога.

0

Viper007Bond создал плагин, который может помочь с вашей проблемой.

https://wordpress.org/plugins/allow-numeric-stubs/

Кроме того, было бы полезно, если бы вы разделили структуру постоянную ссылку, которую вы используете.

Удачи!

+0

К сожалению, это не сработает – user64675

Смежные вопросы