Пользовательские поля WordPress 101: советы, хитрости и лайфхаки
Опубликовано: 2023-07-21Вы хотите максимально использовать настраиваемые поля на своем веб-сайте WordPress?
Пользовательские поля — это удобная функция WordPress, которая позволяет вам добавлять дополнительные данные и информацию к вашим сообщениям и страницам WordPress. Многие популярные плагины и темы WordPress используют настраиваемые поля для хранения важных данных.
В этой статье мы покажем вам, как использовать настраиваемые поля WordPress с некоторыми советами, приемами и лайфхаками.

Поскольку это длинная статья, мы добавили оглавление для более удобной навигации. Просто используйте быстрые ссылки ниже, чтобы перейти к разделу, который вы хотите прочитать:
Что такое настраиваемые поля WordPress?
Настраиваемые поля WordPress — это метаданные, используемые для добавления дополнительной информации к сообщению или странице, которую вы редактируете.
По умолчанию, когда вы пишете новую запись, страницу или контент любого другого типа, WordPress сохраняет этот контент в двух разных частях.
Первая часть — это основная часть вашего контента, которую вы добавляете с помощью редактора контента WordPress.
Вторая часть — это информация об этом содержимом. Например, название, автор, дата, время и т. д. Эта информация называется метаданными.
Веб-сайт WordPress автоматически добавляет все необходимые метаданные к каждому сообщению или странице, которую вы создаете. Вы также можете создавать и хранить собственные метаданные с помощью настраиваемых полей.
По умолчанию опция настраиваемых полей скрыта на экране редактирования сообщения. Чтобы просмотреть его, вам нужно щелкнуть меню из трех точек в правом верхнем углу экрана и выбрать «Настройки» в меню.

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

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

Однако для этого вам нужно будет отредактировать файлы темы WordPress.
Примечание. Это руководство рекомендуется для пользователей, которые уже знакомы с редактированием файлов темы. Это также полезно для начинающих разработчиков WordPress, которые хотят научиться правильно использовать настраиваемые поля в своих собственных темах или плагинах.
Сказав это, давайте посмотрим, как добавлять и использовать настраиваемые поля в WordPress.
Добавление пользовательских полей в WordPress
Во-первых, вам нужно открыть запись или страницу в редакторе блоков, чтобы вы могли добавить настраиваемые поля. Затем вы должны перейти в мета-окно «Пользовательские поля».

Затем вам нужно указать имя для вашего настраиваемого поля, а затем ввести его значение. Нажмите кнопку «Добавить настраиваемое поле», чтобы сохранить его.
Поле будет сохранено и отображено в мета-окне «Пользовательские поля» следующим образом:

Вы можете редактировать это настраиваемое поле в любое время, а затем просто нажмите кнопку «Обновить», чтобы сохранить изменения. Вы также можете удалить его, если больше не хотите его использовать.
Теперь вам нужно сохранить свое сообщение, чтобы сохранить настройки пользовательских полей.
Отображение пользовательских полей в темах WordPress
Чтобы отобразить настраиваемое поле на вашем веб-сайте, вам нужно будет отредактировать файлы темы WordPress и фрагменты кода.
Мы не рекомендуем напрямую редактировать файлы темы, потому что малейшая ошибка может сломать ваш сайт. Более простой способ сделать это — использовать WPCode.
Это лучший плагин фрагментов кода для WordPress, который позволяет добавлять собственный код и управлять фрагментами кода с панели управления WordPress.
Если вы еще не делали этого раньше, мы также рекомендуем прочитать наше руководство о том, как копировать и вставлять код в WordPress.
Во-первых, вам нужно будет установить и активировать бесплатный плагин WPcode. Для получения более подробной информации см. наше руководство для начинающих о том, как установить плагин WordPress.
После активации вам нужно будет перейти в раздел «Фрагменты кода» + «Добавить фрагмент» на панели управления WordPress и выбрать параметр «Добавить собственный код (новый фрагмент)».

Теперь вам нужно скопировать этот код, чтобы добавить его в файлы вашей темы:
<?php echo get_post_meta($post->ID, 'key', true); ?>
Не забудьте заменить key
именем вашего пользовательского поля.
Затем вы должны ввести код в область «Предварительный просмотр кода» и изменить тип кода на «Фрагмент PHP».

Например, мы использовали этот код в нашей демонстрационной теме:
<p>Today's Mood: <?php echo get_post_meta($post->ID, 'Mood', true); ?></p>
Отсюда вы можете прокрутить вниз до раздела «Вставка».
Здесь вы можете выбрать, где будет выполняться код. По умолчанию WPCode автоматически вставит код и запустит его везде на вашем сайте.

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

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

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

Когда вы закончите, просто нажмите кнопку «Добавить настраиваемое поле», чтобы сохранить изменения, а затем опубликовать или обновить сообщение.
Устранение неполадок: не удается найти настраиваемое поле в раскрывающемся списке на экране редактирования сообщения
По умолчанию WordPress загружает только 30 настраиваемых полей в раскрывающемся меню на экране редактирования записи.
Если вы используете темы и плагины WordPress, которые уже используют настраиваемые поля, они могут появиться первыми в раскрывающемся меню, и вы не сможете увидеть только что созданное настраиваемое поле.
Чтобы решить эту проблему, вам нужно будет добавить следующий код в файл functions.php вашей темы или с помощью WPCode (рекомендуется):
add_filter( 'postmeta_form_limit', 'meta_limit_increase' );
function meta_limit_increase( $limit )
return 50;
Приведенный выше код изменит это ограничение на 50. Если вы по-прежнему не видите свое настраиваемое поле, попробуйте еще больше увеличить это ограничение.
Создание пользовательского интерфейса для настраиваемых полей с использованием расширенных настраиваемых полей
Как видите, как только вы добавите настраиваемое поле, вам придется выбирать поле и вводить его значение каждый раз, когда вы пишете сообщение.
Если у вас много настраиваемых полей WordPress или несколько авторов пишут на вашем сайте, то это не идеальное решение.
Было бы неплохо, если бы вы могли создать пользовательский интерфейс, в котором пользователи могли бы заполнять форму для добавления значений в ваши настраиваемые поля?
Фактически, это то, что уже делают многие популярные плагины WordPress.
Например, поле SEO-заголовка и мета-описания в популярном плагине All in One SEO — это настраиваемое мета-поле:

Самый простой способ создать пользовательский интерфейс для добавления настраиваемых полей — использовать плагин Advanced Custom Fields.
Первое, что вам нужно сделать, это установить и активировать плагин Advanced Custom Fields. Для получения более подробной информации см. наше пошаговое руководство по установке плагина WordPress.
После активации вам необходимо посетить страницу ACF »Группы полей и нажать кнопку «Добавить новый».

Группа полей похожа на контейнер с набором настраиваемых полей. Это позволяет добавлять несколько панелей настраиваемых полей.
Теперь вам нужно указать заголовок для группы полей и нажать кнопку «+ Добавить поле» в правом верхнем углу.

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

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

Затем отредактируйте запись или создайте новую, и вы увидите новую панель с настраиваемыми полями WordPress под редактором контента.
Подробные пошаговые инструкции можно найти в нашем руководстве о том, как добавлять настраиваемые мета-блоки в записи и типы записей WordPress.
Как скрыть пустые настраиваемые поля с помощью условных операторов
До сих пор мы рассмотрели, как создать настраиваемое поле и отобразить его в вашей теме.
Теперь давайте посмотрим, как проверить, что настраиваемое поле не пусто перед его отображением. Для этого мы изменим наш код, чтобы сначала проверить, есть ли в поле данные:
<?php
$mood = get_post_meta($post->ID, 'Mood', true);
if ($mood) ?>
<p>Today's Mood: <? echo $mood; ?></p>
<?php
else
// do nothing;
?>
Не забудьте заменить Mood
на собственное имя пользовательского поля.
Добавление нескольких значений в настраиваемое поле
Пользовательские поля можно повторно использовать в одном и том же сообщении для добавления нескольких значений. Вам просто нужно снова выбрать поле и добавить другое значение в поле «Значение».

Однако код, который мы использовали в приведенных выше примерах, сможет отображать только одно значение.
Чтобы отобразить все значения настраиваемого поля, нам нужно изменить код и заставить его возвращать данные в виде массива. Вам нужно будет добавить следующий код в файл темы:
<?php
$mood = get_post_meta($post->ID, 'Mood', false);
if( count( $mood ) != 0 ) ?>
<p>Today's Mood:</p>
<ul>
<?php foreach($mood as $mood)
echo '<li>'.$mood.'</li>';
?>
</ul>
<?php
else
// do nothing;
?>
Опять же, не забудьте заменить Mood
на ваше собственное имя пользовательского поля.
В этом примере вы заметите, что мы изменили последний параметр функции get_post_meta
на false
. Этот параметр определяет, должна ли функция возвращать одно значение или нет. Установка его в false
позволяет ему возвращать данные в виде массива, который мы затем отображаем в цикле foreach
.
Как искать сообщения по произвольному полю в WordPress
Поиск WordPress по умолчанию не работает ни с какими пользовательскими полями на вашем сайте. Он использует контент только для того, чтобы найти сообщение, которое вы или ваши посетители ищете на вашем сайте.
Однако SearchWP меняет это, улучшая поиск WordPress. Это лучший поисковый плагин WordPress, который выходит за рамки использования содержимого поста и индексирует все, включая настраиваемые поля WordPress, документы PDF, настраиваемые таблицы, текст, файлы и многое другое.

Вы можете настроить алгоритм поиска без редактирования кода с помощью SearchWP. Просто установите плагин, а затем перейдите в SearchWP » Алгоритм из области администрирования WordPress.
После этого вам нужно перейти на вкладку «Двигатели» и отрегулировать ползунок «Атрибут релевантности». Это изменит важность, придаваемую каждому атрибуту во время поиска.

Например, вы можете установить ползунок «Пользовательские поля» на максимум и соответствующим образом настроить ползунки для других атрибутов. Таким образом, SearchWP будет отдавать предпочтение данным в настраиваемых полях при поиске контента в WordPress.
Еще одним преимуществом использования SearchWP является то, что он работает с некоторыми из самых популярных плагинов настраиваемых полей, включая Advanced Custom Fields (ACF), Meta Box и Pods.
Для получения более подробной информации вы можете прочитать наше руководство для начинающих о том, как улучшить поиск WordPress с помощью SearchWP.
Отображение сообщений с определенным пользовательским ключом
WordPress позволяет отображать сообщения с пользовательскими ключами и их значениями. Например, если вы пытаетесь создать пользовательскую страницу архива для отображения всех сообщений с определенными пользовательскими ключами, вы можете использовать класс WP_Query
для запроса сообщений, соответствующих этим полям.
Вы можете использовать следующий код в качестве отправной точки:
$args = array(
'meta_key' => 'Mood',
'meta_value' => 'Happy'
);
$the_query = new WP_Query( $args );
<?php
// the query
$the_query = new WP_Query( $args ); ?>
<?php if ( $the_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
<!-- end of the loop -->
<!-- pagination here -->
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
Не забудьте заменить параметры meta_key
и meta_value
своими значениями.
Как добавить имя гостевого автора с помощью настраиваемых полей
Вы хотите добавить гостевой пост, но не хотите добавлять новый профиль пользователя только для этого поста? Более простой способ — добавить имя приглашенного автора в качестве настраиваемого поля.
Для этого вам потребуется добавить следующий код в файл functions.php вашей темы или использовать WPCode (рекомендуется):
add_filter( 'the_author', 'guest_author_name' );
add_filter( 'get_the_author_display_name', 'guest_author_name' );
function guest_author_name( $name )
global $post;
$author = get_post_meta( $post->ID, 'guest-author', true );
if ( $author )
$name = $author;
return $name;
Для получения более подробной информации см. наше руководство по вставке фрагментов из Интернета в WordPress.
Этот код подключает функцию к фильтрам the_author
и get_the_author_display_name
в WordPress.
Функция сначала проверяет имя гостевого автора. Если он существует, то он заменяет имя автора именем приглашенного автора.
Теперь вам нужно будет отредактировать сообщение, в котором вы хотите отобразить имя приглашенного автора. Перейдите в мета-окно «Пользовательские поля», добавьте имя вашего приглашенного автора и, наконец, нажмите кнопку «Добавить настраиваемое поле».

Для получения дополнительной информации см. нашу статью о том, как переписать имена гостевых авторов с помощью настраиваемых полей в WordPress.
Как отобразить авторов статьи с помощью настраиваемых полей
На многих популярных блогах и новостных сайтах многие авторы участвуют в написании одной статьи. Однако WordPress позволяет ассоциировать с записью только одного автора.
Один из способов решить эту проблему — использовать плагин Co-Authors Plus. Чтобы узнать больше, ознакомьтесь с нашим руководством о том, как добавить нескольких авторов в запись WordPress.
Другой метод — добавление участников в качестве настраиваемого поля.
Во-первых, вам нужно отредактировать пост, где вы хотите отобразить соавторов или участников. Затем прокрутите вниз до метаполя «Пользовательские поля» и добавьте имена авторов в качестве настраиваемых полей соавтора.

Теперь вам нужно добавить этот код в файлы вашей темы, где вы хотите показать соавторов:
<?php
$coauthors = get_post_meta($post->ID, 'co-author', false);
if( count( $coauthors ) != 0 ) ?>
<ul class="coauthors">
<li>Contributors</li>
<?php foreach($coauthors as $coauthors) ?>
<?php echo '<li>'.$coauthors.'</li>' ;
?>
</ul>
<?php
else
// do nothing;
?>
Чтобы имена авторов отображались через запятую, вы можете добавить следующий пользовательский CSS:
.coauthors ul
display:inline;
.coauthors li
display:inline;
list-style:none;
.coauthors li:after
content:","
.coauthors li:last-child:after
content: "";
.coauthors li:first-child:after
content: ":";
Вот как это выглядело на нашем демонстрационном сайте.

Как отображать настраиваемые поля вне цикла в WordPress
Что делать, если вам нужно отобразить настраиваемые поля на боковой панели одного сообщения?
Чтобы отображать настраиваемые поля вне цикла WordPress, вы можете добавить следующий код в файлы темы:
<?php
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'key', true);
wp_reset_query();
?>
Не забудьте заменить key
именем вашего пользовательского поля.
Обычно большинство тем WordPress используют один и тот же верхний и нижний колонтитулы и боковую панель на всех страницах.
Существует также много способов показать разные боковые панели, верхние или нижние колонтитулы для разных страниц вашего сайта. Вы можете ознакомиться с нашим руководством о том, как отображать разные боковые панели для каждой записи или страницы WordPress.
Один из способов сделать это — использовать настраиваемые поля. Просто отредактируйте сообщение или страницу, где вы хотите отобразить другую боковую панель, а затем добавьте боковую панель в качестве настраиваемого поля.

Теперь вам нужно отредактировать файл темы WordPress, например single.php, где вы хотите отобразить пользовательскую боковую панель. Вы будете искать следующий код:
Замените эту строку следующим кодом:
<?php
global $wp_query;
$postid = $wp_query->post->ID;
$sidebar = get_post_meta($postid, "sidebar", true);
get_sidebar($sidebar);
wp_reset_query();
?>
Этот код просто ищет настраиваемое поле боковой панели, а затем отображает его в вашей теме. Например, если вы добавите webpage
в качестве пользовательского поля боковой панели, код будет искать файл sidebar-webpage.php для отображения.
Вам нужно будет создать файл sidebar-webpage.php в папке вашей темы. Вы можете скопировать код из файла sidebar.php вашей темы в качестве отправной точки.
Управление содержимым RSS-канала с помощью настраиваемых полей
Хотите отображать дополнительные метаданные или контент для пользователей RSS-канала? Используя настраиваемые поля, вы можете манипулировать своим RSS-каналом WordPress и добавлять пользовательский контент в свои каналы.
Во-первых, вам нужно добавить следующий код в файл functions.php вашей темы или использовать WPCode (рекомендуется):
function wpbeginner_postrss($content)
global $wp_query;
$postid = $wp_query->post->ID;
$coolcustom = get_post_meta($postid, 'coolcustom', true);
if(is_feed())
if($coolcustom !== '')
$content = $content."<br /><br /><div>".$coolcustom."</div>
";
else
$content = $content;
return $content;
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');
Теперь просто создайте настраиваемое поле под названием «coolcustom» и добавьте любое значение, которое вам нравится. Вы можете использовать его для отображения рекламы, изображений, текста или чего угодно.
Для получения более подробной информации см. наше руководство о том, как копировать и вставлять код из Интернета в WordPress.
Как управлять заголовком RSS-канала с помощью настраиваемых полей
Иногда вам может понадобиться добавить дополнительный текст к заголовку сообщения для пользователей RSS-канала. Например, это может быть удобно, если вы публикуете спонсируемый или гостевой пост.
Во-первых, вам нужно добавить следующий код в файл functions.php вашей темы или использовать WPCode, чтобы добавить пользовательский фрагмент кода, не нарушая работу вашего веб-сайта:
function wpbeginner_titlerss($content)
global $wp_query;
$postid = $wp_query->post->ID;
$gpost = get_post_meta($postid, 'guest_post', true);
$spost = get_post_meta($postid, 'sponsored_post', true);
if($gpost !== '')
$content="Guest Post: ".$content;
elseif ($spost !== '')
$content="Sponsored Post: ".$content;
else
$content = $content;
return $content;
add_filter('the_title_rss', 'wpbeginner_titlerss');
Далее вам нужно отредактировать пост, где вы хотите отобразить лишний текст в поле заголовка.
Затем добавьте guest_post и Sponsored_post в качестве настраиваемых полей.

Если какое-либо из этих двух настраиваемых полей будет найдено со значением «истина», код добавит соответствующий текст перед заголовком. Эту технику можно использовать по-разному, чтобы соответствовать тому, что вам нравится.
Хотите узнать больше крутых лайфхаков с RSS-каналами? Посмотрите наше руководство о том, как добавлять контент и управлять своими RSS-каналами WordPress.
Как установить дату истечения срока действия для сообщений в WordPress с помощью настраиваемых полей
Хотите установить срок действия для некоторых сообщений на вашем сайте WordPress? Это удобно, когда вы хотите публиковать контент только за определенный период, например, для проведения опросов или предложений с ограниченным сроком действия.
Один из способов сделать это — вручную удалить содержимое публикации или использовать плагин, такой как Post Expirator.
Другой вариант — использовать настраиваемые поля для автоматического истечения срока действия сообщений через определенное время. Вам нужно будет отредактировать файлы темы и изменить цикл WordPress следующим образом:
<?php
if (have_posts()) :
while (have_posts()) : the_post();
$expirationtime = get_post_meta($post->ID, "expiration", false);
if( count( $expirationtime ) != '' )
if (is_array($expirationtime))
$expirestring = implode($expirationtime);
$secondsbetween = strtotime($expirestring)-time();
if ( $secondsbetween >= 0 )
echo 'This post will expire on ' .$expirestring.'';
the_content();
else
echo "Sorry this post expired!"
else
the_content();
endwhile;
endif;
?>
Примечание. Вам нужно будет отредактировать этот код, чтобы он соответствовал вашей теме.
После добавления этого кода вы можете добавить настраиваемое поле истечения срока действия к сообщению, срок действия которого истекает. Убедитесь, что вы добавили время в формате мм/дд/гггг 00:00:00 .

Как стилизовать отдельные сообщения с помощью настраиваемых полей
Хотите изменить внешний вид отдельного сообщения с помощью CSS? WordPress автоматически назначает каждому сообщению собственный класс, который вы можете использовать для добавления собственного CSS.
Однако, используя настраиваемые поля, вы можете добавлять свои собственные настраиваемые классы, а затем использовать их для оформления сообщений по-разному.
Во-первых, вам нужно отредактировать сообщение, которое вы хотели бы оформить по-другому. Перейдите в поле «Пользовательские поля» и добавьте настраиваемое поле пост-класса.

Затем вам нужно отредактировать файлы темы WordPress и добавить этот код в начало цикла WordPress:
<?php $custom_values = get_post_meta($post->ID, 'post-class'); ?>
Теперь вам нужно найти строку с функцией post_class()
.
Вот как это выглядело в нашей демонстрационной теме:
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
Вы должны изменить эту строку, чтобы включить значение вашего настраиваемого поля, например:
<article id="post-<?php the_ID(); ?>" <?php post_class($custom_values); ?>>
Теперь, если вы изучите исходный код поста с помощью инструмента Inspect, вы увидите, что класс CSS вашего настраиваемого поля добавлен в пост-класс.

Теперь вы можете использовать этот класс CSS, чтобы добавить пользовательский CSS и по-разному оформить свой пост.
Мы надеемся, что эта статья помогла вам узнать больше о настраиваемых полях WordPress. Вы также можете ознакомиться с нашим руководством о том, как добавлять настраиваемые мета-поля в настраиваемые таксономии в WordPress и о лучших плагинах для создания страниц WordPress, которые помогут вам создать свой веб-сайт так, как вы хотите.
Если вам понравилась эта статья, подпишитесь на наш канал YouTube для видеоуроков по WordPress. Вы также можете найти нас в Twitter и Facebook.