Intereting Posts
Плагин: невозможно сохранить параметр выравнивания изображения для отображения в виджете в боковой панели Эффективный способ обновления нескольких метаданных Пользовательские типы комментариев. Возможны ли они? Пользовательский Nav Walker, чтобы показать братьев и сестер и детей текущей ветви? Запросить пользователей для загрузки аватара при регистрации Мой add_action (wp_footer, 'method') не звонит? Пользовательская позиция таксономии в панели администратора Дополнительные пользовательские поля WYSIWYG Больше тегов Можете ли вы перейти от экрана обновлений во время обновления? Я не могу получить свою пользовательскую область виджетов для показа на моем сайте WordPress Запускать фильтр, когда ходок работает Сайт WordPress продолжает загружать страницу обслуживания Скрыть не классифицированные, если нет набора категорий Как классифицировать страницы? Добавить пользовательские параметры в поисковый запрос JSON API?

Отображать пользовательский тип сообщения из шаблона

У меня есть этот файл шаблона, называемый События. Цель этого файла – показать последнюю запись с настраиваемым событием типа. Я решил это с очень уродливым решением. Должен быть более простой и правильный способ сделать это. Если вы проверите мой код, убедитесь, что вы понимаете, что я пытаюсь выполнить 🙂

Заранее спасибо!

<?php /* * Template Name: Event */ ?> <?php $permalink = get_permalink($wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_type = 'event' ORDER BY post_date DESC LIMIT 1")); ?> <html> <head> <script type="text/javascript"> window.location = "<?php echo $permalink; ?>"; </script> </head> <body> </body> </html> 

Чистое решение:

 <?php /* * Template Name: Event */ $permalink = get_permalink($wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_type = 'event' ORDER BY post_date DESC LIMIT 1")); header('Location: '.$permalink); ?> 

Solutions Collecting From Web of "Отображать пользовательский тип сообщения из шаблона"

Если вы хотите использовать соответствующую страницу архива (например, example.com/events ), убедитесь, что вы зарегистрировали свой собственный тип сообщения с помощью 'has_archive' => true а затем создаете archive-events.php в своей теме (изменение events на независимо от того, что вы назвали своим CPT).

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

global $query_string; query_posts( $query_string . '&posts_per_page=1' );

Если вы просто хотите перенаправить на этот последний, который кажется менее изящным, попробуйте поставить выше в начале, начиная цикл, а затем использовать PHP header() для перенаправления, возможно, используя 302 в качестве причины. Убедитесь, что нет выхода (даже пустые строки за пределами PHP-кода) перед вызовом header() . Также убедитесь, что у вас есть какой-то запасной вариант, если нет подходящего сообщения для запроса.

Вам не нужно ничего делать, кроме как зарегистрировать свой тип сообщения соответствующим образом: см. http://codex.wordpress.org/Function_Reference/register_post_type#Parameters

с publicly_queryable = true (я думаю, что значение по умолчанию – false)

Затем он будет автоматически иметь шаблон. Он будет использовать одно сообщение, если нет настраиваемого шаблона.

http://codex.wordpress.org/Template_Hierarchy#Single_Post_display .

См. Также http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress

Рабочий пример здесь: (использует по умолчанию шаблон для отдельной записи. Имеет фильтр для добавления некоторых данных события в контент для типов сообщений о событиях): http://test.icalevents.com/event/bunny-hop/