Если я правильно вас понимаю, вы хотите получить доступ к старым постам только со старой структурой постоянной ссылки (например, ?p=123
), а новые посты - только с новой структурой (например, /2009/08/name-of-article
).
Боюсь, это невозможно без переписывания кода Wordpress (см. Краткое объяснение в конце моего ответа).
Тем не менее, я думаю, что плагин перенаправления постоянных ссылок Скотта Янга (прокрутите вниз к часто задаваемым вопросам) или плагин переноса постоянных ссылок Дина Ли 1010 * может быть решением.
Когда Wordpress создает ссылку (например, для новой статьи, для ссылок «продолжить чтение» или для результатов поиска), он будет использовать новую структуру постоянных ссылок, даже для старых сообщений (что, к сожалению, не совсем то, что вы намеревались ). Однако, если кто-то использует старую постоянную ссылку, она будет переписана на лету, а пользователь (или SE) будет перенаправлен на правильную страницу.
Этот редирект 301 должен сохранять рейтинг вашей страницы.
Объяснение, почему одновременное использование разных структур постоянных ссылок для старых и новых сообщений означало бы изменение кода Wordpress:
Для каждого сообщения Wordpress сохраняет уникальный идентификатор (например, «123») и необязательно уникальное имя сообщения (например, «название статьи») в базе данных.
При доступе к URL-адресу с постоянной ссылкой, такой как /2009/08/name-of-article
, Wordpress преобразует его в соответствии с настроенной в настоящее время структурой постоянной ссылки . Если он создает ссылку, он также делает это в соответствии с текущим настроенным правилом постоянной ссылки.
Вам нужно добавить код в Wordpress, чтобы он использовал два разных правила в зависимости от возраста статьи.