Intereting Posts
Ограничить пользовательский интерфейс для администратора? проблема с раскрывающимися полями wpalchemy Миграционный сайт WordPress предоставляет китайские Изменить пункты меню URL Пользовательское навигационное меню создается со страницами по умолчанию, но не подключено к пользовательскому меню меню темы Безопасно ли зарегистрировать таксономию без использования каких-либо крючков? Интеграция с полным подключением кэш-памяти W3 Как заряжать доставку в WP электронной коммерции на основе варианта? wp_generate_attachment_metadata для файлов без изображений Как я могу поставить мета-окно над редактором, но ниже раздела заголовка на странице редактирования сообщений? Проблема Ajax от WordPress с неопределенным URL-адресом Shortcode для внешнего HTML Добавление значений короткого кода в wp_head Фильтр / поиск из двух категорий Как создать профиль WordPress / Заголовок автора?

Как я могу отменить одно сообщение и сделать его отображением для другого сообщения?

У меня две страницы на моем сайте WordPress:

mysite.com/?p=100 mysite.com/?p=200 

Я думаю, что я мог бы где-нибудь подключиться к действиям WordPress и повторно запросить сообщение, чтобы контент для mysite.com/?p=200 отображался на странице mysite.com/?p=100

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

 add_action( 'pre_get_posts', 'wpse35832_pre_get_posts' ); function wpse35832_pre_get_posts( $query ){ $pid = ''; if( ! empty( $query->query_vars['page_id'] ) ) { $pid = $query->query_vars['page_id']; } elseif( ! empty( $query->queried_object->ID )) { $pid = $query->queried_object->ID; } if($pid == '100'){ $query->query_vars['page_id'] = 200; } return $query; } 

И на самом деле эта функция работает, но с одной оговоркой: если я использую довольно постоянные ссылки ( mysite.com/name-of-page/ ), заголовок страницы для исходного сообщения. Однако, если permalinks находятся в стиле переменной запроса, все, кажется, работает нормально.

Что я делаю неправильно, и как я могу это исправить? Я попробовал unset($query->queried_object чтобы его нужно было повторно запросить, и это приводит к перенаправлению на исходную страницу.

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

Я понимаю, что могу создать собственный шаблон страницы, например post-200.php и внутри, используя функцию query_posts и отображающий контент. Это не то, что я пытаюсь сделать, хотя.

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

pre_get_posts должен работать крюк pre_get_posts :

 add_action( 'pre_get_posts', 'wpse35832_pre_get_posts' ); function wpse35832_pre_get_posts( $wp ){ if( $wp->query_vars['p'] == 200 ): $wp->query_vars['p'] = 100; endif; return $wp; } 

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