Как проверить, является ли сообщение произвольным типом сообщения?

Я ищу способ проверить, является ли сообщение настраиваемым типом сообщения. Например, на боковой панели я могу вставить такой код:

  if (is_single ()) {//Код здесь}  

Я хочу протестировать код только для настраиваемого типа сообщения.


Вот вы: get_post_type () , а затем if ('book' == get_post_type ()) ... согласно Условным тегам> Тип сообщения в Кодексе.


180
  if (is_singular ('book')) {//условное содержание/код}  

Вышеупомянутое true при просмотре сообщения произвольного типа сообщения: книга .

  if (is_singular (array ('газета', 'книга'))) {//условное содержание/код}  

Выше указано true при просмотре сообщения произвольных типов сообщений: газета или книга .

Эти и другие условные теги можно просмотреть здесь.

Улучшите этот ответ
отредактировал 12 февраля ’16 в 16: 14
Howdy_McGee ♦
18.2k1717 золотых знаков7171 серебряных знаков150150 бронзовых знаков
ответил 12 июня ’12 в 16:41
добавить комментарий |

  if (is_singular ('book')) {//условное содержание/код}  

Вышеупомянутое true при просмотре сообщения произвольного типа сообщения: book .

   if (is_singular (array ('газета', 'книга'))) {//условное содержание/код}  

Это true при просмотре сообщения из произвольных типов сообщений: газета или book .

Эти и другие условные теги можно просмотреть здесь.


29

Добавить это к вашим функциям . php , и у вас может быть функциональность внутри или вне цикла:

  function is_post_type ($ type) {global $ wp_query;  if ($ type == get_post_type ($ wp_query-> post-> ID)) return true;  return false;}  

Итак, теперь вы можете использовать следующее:

  if (is_single () && is_post_type ('post_type'  )) {//Магия работы}  

Улучшите этот ответ
отредактировал 10 июня ’19 в 12:36
Питер Мортенсен
26822 серебряных знака99 бронзовых знаков
6 июля ’11 в 16: 412011-07-06 16:41
  • Спасибо, это очень полезно! Но это должно быть: if (is_single () && is_post_type (‘post_type’)) {//work magic} Закрывающая скобка отсутствовала …. Приветствую вас, Этель — user10462 21 нояб., 2011 в 14:23
  • Это перестало работать у кого-то еще? Я использовал это целую вечность, но внезапно это перестало работать для меня. Однако использование того же метода без global $ wp_query всегда работает: if ('post-type' == get_post_type ()) {} — turtledropbomb 13 января. ’17 в 13:39
  • is_post_type () амортизируется. — Лиза Серилли 21 дек. ’17 в 12:23
добавить комментарий |

Добавьте это в свой functions.php , и вы можете иметь функциональность внутри или вне цикл:

  функция is_post_type ($ type) {global $ wp_query;  if ($ type == get_post_type ($ wp_query-> post-> ID)) вернуть true;  return false;}  

Итак, теперь вы можете использовать следующее:

  if (is_single () && is_post_type ('post_type'  )) {//Магия работы}  

28

Чтобы проверить, является ли сообщение каким-либо настраиваемым типом сообщения, выберите список всех не встроенных типов сообщений и проверьте, входит ли тип сообщения в этот список.

Как функция:

 /** * Проверяет, является ли сообщение настраиваемым типом сообщения. * @param mixed $ post объект или идентификатор сообщения * @return boolean */function is_custom_post_type ($ post = NULL) {$ all_custom_post_types = get_post_types (array ('_builtin' => FALSE)); //пользовательских типов сообщений нет if (empty ($ all_custom_post_types)) return FALSE;  $ custom_types = array_keys ($ all_custom_post_types);  $ current_post_type = get_post_type ($ post); //не удалось определить текущий тип if (! $ current_post_type) return FALSE;  return in_array ($ current_post_type, $ custom_types);}  

Использование:

  if (is_custom_post_type ()) print 'Это  произвольный тип сообщения! ';  

Улучшить этот ответ
ответил 15 апр. ’13 в 15:22
  • 2
    Это должен быть принятый ответ. — aalaap 21 мар. ’18 в 13:33
добавить комментарий |

Чтобы проверить, является ли сообщение любым произвольным типом сообщения, выберите список всех не встроенных в типах сообщений и проверьте, находится ли тип сообщения в этом списке.

В качестве функции:

 /** * Проверить, есть ли сообщение  произвольный тип сообщения. * @param mixed $ post объект или идентификатор сообщения * @return boolean */function is_custom_post_type ($ post = NULL) {$ all_custom_post_types = get_post_types (array ('_builtin' => FALSE)); //пользовательских типов сообщений нет if (empty ($ all_custom_post_types)) return FALSE;  $ custom_types = array_keys ($ all_custom_post_types);  $ current_post_type = get_post_type ($ post); //не удалось определить текущий тип if (! $ current_post_type) return FALSE;  return in_array ($ current_post_type, $ custom_types);}  

Использование:

  if (is_custom_post_type ()) print 'Это  произвольный тип сообщения! ';  

11

Если по какой-либо причине у вас уже есть доступ к глобальной переменной $ post, вы можете просто использовать

  if ($ post-> post_type == "желаемый пост  type ") {}  

Улучшите этот ответ
ответил 01 февраля 2013 в 21:30
добавить комментарий |

Если по какой-либо причине у вас уже есть доступ к глобальной переменной $ post, вы можете просто использовать

   if ($ post-> post_type == "желаемый тип сообщения") {}  

6

Если вы хотите использовать подстановочный знак для всех ваших пользовательских типов сообщений:

  if (  ! is_singular (array ('page', 'attachment', 'post'))) {//echo 'Пользовательский тип сообщения Imma!';}  

Таким образом, вы не будете ‘ не нужно знать название вашего персонализированного сообщения. Также код по-прежнему работает, даже если вы позже измените имя своего настраиваемого сообщения.

Улучшите этот ответ
ответил 30 января ’14 в 3:52
добавить комментарий |

Если вы хотите, чтобы для всех ваших пользовательских типов сообщений была проверка на подстановочные знаки:

   if (! is_singular (array ('page', 'attachment', 'post'))) {//echo 'Пользовательский тип сообщения Imma!';}  

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



Как создавать собственные типы сообщений в WordPress

Хотите узнать, как легко создавать пользовательские типы сообщений в WordPress? ? Пользовательские типы сообщений превращают сайт WordPress из платформы для ведения блогов в мощную систему управления контентом (CMS).

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

В этой статье мы покажем вам, как легко создавать собственные типы записей в WordPress. Мы научим вас двум методам, и вы сможете выбрать тот, который вам будет удобнее.

Что такое пользовательский тип сообщения в WordPress?

Пользовательские типы сообщений — это типы контента, такие как сообщения и страницы. Поскольку WordPress превратился из простой платформы для ведения блогов в надежную CMS, термин «пост» прижился к нему. Однако тип сообщения может быть любым содержанием.

По умолчанию WordPress поставляется со следующими типами сообщений:

  • Post
  • Page
  • Вложение
  • Версия
  • Меню навигации

Вы можете создавать свои собственные типы сообщений и называть их как угодно вы хотите.

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

Другими примерами типов сообщений являются портфолио, отзывы, продукты и т. д.

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

  • WooCommerce — добавляет пользовательский тип публикации продукта на ваш сайт WordPress.
  • WPForms — создает тип публикации wpforms для хранения всех ваших форм
  • MemberPress — добавляет пользовательский тип сообщения memberpressproduct

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

Ознакомьтесь с нашей статьей о том, когда вам действительно нужны пользовательские типы сообщений или таксономии в WordPress.

Также ознакомьтесь с разделами «Сделки» и «Глоссарий» WPBeginner. Это настраиваемые типы сообщений, которые мы создали, чтобы эти разделы были отделены от наших ежедневных статей в блоге. Это помогает нам лучше организовать контент нашего веб-сайта.

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

При этом давайте Посмотрите, как легко создавать пользовательские типы записей в WordPress для собственного использования.

Метод 1. Создание настраиваемого типа сообщения — простой способ

Самый простой способ создать настраиваемый тип сообщения в WordPress — использовать плагин. Этот метод рекомендуется новичкам, потому что он безопасен и очень прост.

Первое, что вам нужно сделать, это установить и активировать плагин пользовательского интерфейса Custom Post Type. После активации плагин добавит новый пункт в меню администратора WordPress под названием CPT UI .

Теперь перейдите в CPT UI »Добавить New , чтобы создать новый пользовательский тип сообщения..

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

Ниже вам необходимо указать имена во множественном и единственном числе для вашего пользовательского типа сообщения.

Затем вы можете при желании щелкнуть ссылку «Заполнить дополнительные ярлыки на основе выбранных ярлыков». Остальные поля меток будут заполнены ниже.

Прокрутите вниз до раздела «Дополнительные ярлыки» и отсюда вы можете предоставить описание для своего типа сообщения и изменить ярлыки.

Ярлыки будут использоваться во всем пользовательском интерфейсе WordPress. когда вы управляете контентом в этом конкретном типе сообщений.

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

Например, вы можете выбрать не делать тип сообщения иерархический, как страницы, или обратный хронологический, как сообщения.

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

Наконец, нажмите «Добавить тип сообщения» ‘, чтобы сохранить и создать свой собственный тип сообщения.

Вот и все, вы успешно создали свой собственный тип сообщения. Вы можете продолжить и начать добавлять контент.

Позже в этой статье мы покажем вам, как отобразить ваш собственный тип публикации на вашем веб-сайте.

Создание пользовательского типа сообщений вручную

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

Если вы работаете на клиентском сайте и не хотите устанавливать другой плагин, тогда вы можете вручную создать свой собственный тип сообщения, добавив требуемый код в файл functions.php вашей темы или в плагин для конкретного сайта (см. Дебаты по пользовательским типам сообщений functions.php или плагин).

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

//Наша функция настраиваемого типа сообщения function create_posttype () {register_post_type ('movies',//CPT Options array ('labels' => array ('name' =  > __ ('Фильмы'), 'singular_name' => __ ('Movie')), 'public' => true, 'has_archive' => true, 'rewrite' => array ('slug' => 'movies'  ), 'show_in_rest' => true,));}//Подключаем нашу функцию к теме setupadd_action ('init', 'create_posttype'); 

Что делает этот код, так это то, что он регистрирует тип сообщения 'movies' с массивом аргументов. Эти аргументы являются параметрами нашего настраиваемого типа сообщения.

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

Теперь давайте рассмотрим подробный фрагмент кода, который добавляет дополнительные параметры к вашему пользовательскому типу сообщения.

/** Создание функции для создания нашего CPT * /function custom_post_type () {//Устанавливаем метки пользовательского интерфейса для пользовательского типа сообщения $ labels = array ('name' => _x ('Movies', 'Post Type General Name', 'Twentytwenty'), 'singular_name' => _x (  'Фильм', 'Единственное имя типа сообщения', 'двадцать двадцать'), 'menu_name' => __ ('Фильмы', 'двадцать двадцать'), 'parent_item_colon' => __ ('Родительский фильм', 'двадцать двадцать'), '  all_items '=> __ (' Все фильмы ',' двадцать двадцать '),' view_item '=> __ (' Просмотреть фильм ',' двадцать двадцать '),' add_new_item '=> __ (' Добавить новый фильм ',' двадцать двадцать ')  , 'add_new' => __ ('Добавить новый', 'двадцать двадцать'), 'edit_item' => __ ('Изменить фильм', 'двадцать двадцать'), 'update_item' => __ ('Обновить фильм', 'двадцать двадцать'  ), 'search_items' => __ ('Искать фильм', 'двадцать двадцать'), 'not_found' => __ ('Не найдено', 'двадцать двадцать'), 'not_found_in_trash' => __ ('Не найдено в корзине',  'двадцать двадцать'),); //Устанавливаем другие параметры для настраиваемого типа сообщения $ args = array ('label' => __ ('movies', 'двадцать двадцать'), 'description' => __ ('Новости и обзоры фильмов', 'двадцать двадцать'), '  label '=> $ labels,//Возможности, которые CPT поддерживает в редакторе сообщений' supports '=> array (' title ',' editor ',' отрывок ',' автор ',' thumbnail ',' comments ',' revisions '  , 'custom-fields',),//Вы можете связать этот CPT с таксономией или настраиваемой таксономией. 'taxonomies' => array ('genres'),/* Иерархический CPT похож на Pages и может иметь * родительский и дочерний  Предметы. Неиерархический CPT * похож на сообщения.  */'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5  , 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capacity_type' => 'post', 'show_in_rest' => true,); //Регистрация вашего настраиваемого типа сообщения register_post_type ('movies', $ args);}/* Подключитесь к действию 'init', чтобы функция *, содержащая регистрацию нашего типа сообщения, * не выполнялась без надобности.  */add_action ('init', 'custom_post_type', 0); 

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

Мы также связали этот настраиваемый тип сообщения с настраиваемой таксономией, называемой жанрами.

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

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

Вы можете найти текстовый домен вашей темы в файле style.css в каталоге вашей темы. Текстовый домен будет упомянут в заголовке файла.

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

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

Есть несколько методов, которые вы можете использовать, каждый из которых имеет свои преимущества .

Отображение настраиваемого типа сообщения с использованием шаблона архива по умолчанию

Во-первых, вы можете просто перейти в Внешний вид »Меню и добавить настраиваемый ссылка на ваше меню. Эта настраиваемая ссылка является ссылкой на ваш настраиваемый тип сообщения.

Если вы используете постоянные ссылки, оптимизированные для SEO, тогда ваш URL CPT, скорее всего, будет примерно таким:

http://example.com/movies

Если вы не используя постоянные ссылки, оптимизированные для SEO, тогда URL-адрес вашего настраиваемого типа сообщения будет примерно таким:

http://example.com/?post_type=movies

Не забудьте заменить example.com своим собственным доменным именем, а фильмы — своим собственным именем типа сообщения.

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

Использование пользовательских шаблонов для архивов CPT и отдельных записей

Если вам не нравится внешний вид страницы архива для вашего пользовательского сообщения type, то вы можете использовать специальный шаблон для архива произвольного типа записей.

Для этого все, что вам нужно сделать, это создать новый файл в каталоге вашей темы и назвать его archive-movies.php . Замените фильмы именем вашего пользовательского типа сообщения.

Для начала вы можете скопировать содержимое файла archive.php вашей темы в archive-movies.php , а затем начните изменять его в соответствии со своими потребностями.

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

Точно так же вы также можете создать собственный шаблон для отображение однократной записи вашего типа сообщения. Для этого вам нужно создать single-movies.php в каталоге вашей темы. Не забудьте заменить фильмы на название вашего пользовательского типа сообщения.

Вы можете начать с копирования содержимого шаблона single.php вашей темы в single-movies.php шаблон, а затем начните изменять его в соответствии со своими потребностями.

Отображение настраиваемых типов сообщений на главной странице

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

 add_action ('pre_get_posts  ',' add_my_post_types_to_query '); функция add_my_post_types_to_query ($ query) {if (is_home () && $ query-> is_main_query ()) $ query-> set (' post_type ', array (' post ',' movies '));  return $ query;} 

Не забудьте заменить movies на свой собственный тип сообщения.

Запрос настраиваемых типов сообщений

Если вы знакомы с кодированием и хотели бы запускать циклические запросы в своих шаблонах, то вот как это сделать (См. также: Что такое цикл?).

Запрашивая базу данных, вы можете получить элементы из настраиваемого типа сообщения.

  php $ args = array ('post_type' => 'movies', 'posts_per_page' => 10)  ; $ the_query = новый WP_Query ($ args);  ?>  php if ($ the_query-> have_posts ()):?>  php while ($ the_query-> have_posts ()): $ the_query-> the_post ();  ?> 

php the_title (); ?>

php the_content (); ?>
php end while; wp_reset_postdata (); ?> php else:?>

php _e ('Извините, сообщения не соответствуют вашим критериям.'); ?>

php endif; ?>

В этом коде сначала мы определили тип сообщения и количество сообщений на странице в аргументах для нашего нового класса WP_Query..

После этого мы выполнили наш запрос, получили сообщения и отобразили их внутри цикла.

Отображение настраиваемых типов сообщений в виджетах

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

Что делать, если вы хотите отображать последние записи из вашего недавно созданного типа сообщения в виджете? Есть простой способ сделать это.

Первое, что вам нужно сделать, это установить и активировать плагин Ultimate Posts Widget. После активации просто перейдите в Внешний вид »Виджеты и перетащите виджет Ultimate Posts на боковую панель.

Этот мощный виджет позволит вам отображать последние сообщения из любых типов сообщений. Вы также можете отображать отрывки из сообщений со ссылкой «Читать дальше» или даже отображать избранное изображение рядом с заголовком сообщения.

Настройте виджет, выбрав нужные параметры и выбрав свой собственный тип сообщения. После этого сохраните изменения и посмотрите на виджет в действии на своем веб-сайте.

Дополнительные настройки пользовательского типа сообщений

С помощью пользовательского интерфейса вы можете сделать гораздо больше. типы сообщений. Вы можете научиться добавлять собственные типы сообщений в основной RSS-канал или создавать отдельные каналы для каждого настраиваемого типа сообщений.

Дополнительные советы см. в нашем списке наиболее полезных руководств по пользовательским типам записей WordPress.

Если вы ищете решение без кода для настройки страниц архива пользовательского типа сообщений, то мы рекомендуем взглянуть на плагин для создания страниц WordPress, такой как Beaver Builder или Divi, потому что они оба могут поможет вам в этом.

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

Если вам понравилась эта статья, подпишитесь на наш канал YouTube с видеоуроками по WordPress. Вы также можете найти нас в Twitter и Facebook.

Оцените статью
logicle.ru
Добавить комментарий