Intereting Posts
WP Вставить сообщение с post_thumbnail перезаписывать и настраивать ссылки на странице нужна помощь с add_rewrite_rule Paginate получается из данных, полученных с помощью массива Включить Max mega menu Plugin в тему Как создать группу полей профиля, которую пользователь не может видеть? Как включить внешний PHP-файл в поддиректор WordPress? Отменить регистрацию jQuery WordPress на определенной странице Плагин галереи заставляет себя над текстом Содержимое открытого изображения «image» отображается пустым на отладчике и заполняется веб-источником Проверьте, существует ли имя пользователя с AJAX Уменьшить / оптимизировать вызов wp_get_object_terms () при создании постоянных ссылок Как получить количество сообщений в пользовательских таксономах WordPress за последний месяц за каждый день? Как создать WP_Query, который возвращает сообщения, где один meta_value <= другой meta_value Как изменить порядок (ASC и DESC) в следующем методе поиска с использованием WP_Query? Сообщения истекают (удаляются) после даты

Использование настраиваемого значения поля для перенаправления с 404 страницы

Я перехожу от старой CMS к WordPress.

Старые статьи сохраняются как сообщения, а новая постоянная ссылка WordPress равна% post-id%.

Старый пул URL-адресов уникален и сохраняется как настраиваемое поле для каждого сообщения; имя настраиваемого поля – «old_url».

Например:

  • Идентификатор сообщения: 123
  • Имя настраиваемого поля: old_url
  • Значение настраиваемого поля: / servlet / Satellite? C = ArticleA_C & cid = 1189064956899

Я хочу использовать значение old_url для перенаправления со старой ссылки на новую ссылку.

Итак, если кто-то запросил «domain.com/servlet/Satellite?c=ArticleA_C&cid=1189064956899», он будет перенаправлен на новую постоянную ссылку и не получит ошибку 404.

Solutions Collecting From Web of "Использование настраиваемого значения поля для перенаправления с 404 страницы"

Я не могу сказать, что я рекомендовал бы это в высоконагруженной системе, если что-то должно быть 301'd в HTAccess или иметь свою собственную настраиваемую таблицу. Ниже приведено решение, которое захватит запрошенный URL-адрес и попытается найти сообщение с соответствующим мета:

 /** * Redirect 404s based on requested url * * @return void */ function wpse_226378() { global $wp; if( is_404() ) { $current_url = add_query_arg( $_REQUEST,$wp->request ); // Get current requested URL ( minus the domain ) $page = get_posts( array( // Get a single post that has that URL as a post meta 'post_type' => 'page', 'posts_page_page' => 1, 'meta_key' => 'old_url', 'meta_value' => sanitize_text_field( $current_url ), 'fields' => 'ids', ) ); if( ! empty( $page ) ) { // IF it's found wp_safe_redirect( get_permalink( $page[0] ), 301 ); // 301 redirect it exit; // Exit script entirely } } } add_action( 'template_redirect', 'wpse_226378' );