Как обойти 404 для определенных страниц / сообщений?

У меня есть сайт с такими URL-адресами: site.com/folder/page-name

Он перемещается на другой сайт, построенный в WordPress, и я пытаюсь воссоздать страницу, чтобы обеспечить непрерывность работы входящих ссылок.

Посты организованы в разные пользовательские типы сообщений, но по существу они будут отображаться с одной и той же страницы, поэтому я создал новую страницу old_content.php и я хочу использовать ее для отображения содержимого из входящих ссылок.

Я создал страницу в wordpress, используя old_content.php в качестве шаблона. Когда я загружаю site.com/folder/ , я могу правильно увидеть мой файл old_content.php .

В old_content.php , я буду wp_query данные для страницы, используя третий сегмент URL, например site.com/folder/my-page-name . Как только я добавляю имя my-page-name , это 404.

Как я могу остановить его с 404, поэтому я могу запросить db и отобразить содержимое?

Solutions Collecting From Web of "Как обойти 404 для определенных страниц / сообщений?"

Когда вы добавляете персонализированный тип сообщения, WordPress не знает, что ему необходимо восстановить его permalinks / rewrite rules.

Перейдите на страницу настроек постоянных ссылок, чтобы очистить и восстановить ссылки, и ваши постоянные константы будут начинать работать, иначе вы получите 404 сообщения.

Предупреждение: некоторые люди посоветуют вам вызвать flush_rewrite_rules на крючке инициализации. Хотя это будет работать, это также сильно замедлит ваш сайт и вызовет другие непредсказуемые проблемы.

Изменение URL-адресов типа сообщения

Это можно сделать, используя параметр rewrite в register_post_type:

http://codex.wordpress.org/Function_Reference/register_post_type#Arguments

rewrite (boolean или array) (необязательно) Запускает обработку перезаписи для этого типа сообщения. Чтобы предотвратить перезаписи, установите значение false. По умолчанию: true и используйте $ post_type в качестве массива slug $ args

  • 'slug' => string Настроить плагин Permastruct. По умолчанию значение $ post_type. Должна быть переведена.
  • 'with_front' => bool Должен ли надстрочный шрифт быть добавлен с передней базой. (например: если ваша структура permalink / blog /, то ваши ссылки будут: false -> / news /, true -> / blog / news /). По умолчанию true
  • 'feeds' => bool Если для этого типа сообщения должен быть создан перматракт корма. Значение по умолчанию has_archive.
  • 'pages' => bool Должен ли permastruct предусмотреть разбиение на страницы. По умолчанию true
  • 'ep_mask' => const Начиная с 3.4. Назначьте маску конечной точки для этого типа сообщения. Для получения дополнительной информации см. Trac Ticket 19275 и это сделать резюме плагинов WordPress конечных точек.
    • Если не указано и permalink_epmask установлено, наследует параметр permalink_epmask
    • Если не указано и permalink_epmask не установлен, по умолчанию используется значение EP_PERMALINK

например

 'rewrite' => array( 'slug' => 'freetips' ),