Пользовательские поля WordPress 101: советы, хитрости и приемы

/

Настраиваемые поля - это удобная функция WordPress, которая позволяет вам добавлять различные дополнительные данные / информацию в ваши записи и страницы WordPress.

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

В этой статье мы покажем вам, как использовать настраиваемые поля WordPress, а также несколько советов, приемов и приемов.

Использование настраиваемых полей в WordPress с практическими примерами

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

Что такое настраиваемые поля WordPress?

Настраиваемые поля WordPress - это метаданные, которые используются для добавления дополнительной информации, связанной с записью или страницей, которые вы редактируете.

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

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

Вторая часть - это информация об этом конкретном контенте. Например, название, автор, дата, время и т. Д. Этот информационный бит сообщения называется метаданными.

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

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

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

Параметры редактора сообщений

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

Включение и отображение панели настраиваемых полей

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

Метабокс настраиваемых полей под редактором сообщений

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

Однако для этого вам нужно будет отредактировать файлы темы WordPress.

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

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

Добавление настраиваемых полей в WordPress

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

Добавление имени и значения настраиваемого поля

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

Поле будет храниться и отображаться в мета-поле настраиваемых полей следующим образом:

Сохраненное настраиваемое поле

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

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

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

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

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

Вам нужно будет ввести код настраиваемых полей внутри цикла WordPress. Найдите строку, которая выглядит так:

<?php
while ( have_posts() ) : the_post();
?>

Вы хотите убедиться, что вы добавили свой код перед следующей строкой:

<?php
endwhile; // end of the loop.
?>

Теперь вам нужно добавить этот код в файл темы:

<?php
echo get_post_meta($post->ID, 'key', true);
?>

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

<p>Today's Mood: <?php echo get_post_meta($post->ID, 'Mood', true); ?></p>

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

Данные настраиваемого поля, отображаемые в теме WordPress

Теперь вы можете использовать это настраиваемое поле и во всех других ваших записях WordPress.

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

Повторное использование настраиваемого поля

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

Не удается найти настраиваемое поле в раскрывающемся списке на экране редактирования публикации

По умолчанию WordPress загружает в эту форму только 30 настраиваемых полей.

Если вы используете темы и плагины WordPress, которые уже используют настраиваемые поля, то есть вероятность, что они появятся первыми в раскрывающемся меню, и вы не сможете увидеть недавно созданное настраиваемое поле.

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

<?php
add_filter( 'postmeta_form_limit', 'meta_limit_increase' );
function meta_limit_increase( $limit ) {
    return 50;
}

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

Создание пользовательского интерфейса для настраиваемых полей

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

Если на вашем веб-сайте много настраиваемых полей или несколько пользователей пишут, то это не идеальное решение.

Разве не было бы неплохо, если бы вы могли создать пользовательский интерфейс, в котором пользователи могли бы заполнять форму, чтобы добавлять значения в ваши настраиваемые поля?

Это то, что уже делают многие популярные плагины WordPress. Например, поле заголовка и метаописания SEO внутри популярного плагина All in One SEO представляет собой настраиваемое мета-поле:

Все в одном мета-боксе пакета SEO

Самый простой способ сделать это - использовать плагин Advanced Custom Fields.

Добавление настраиваемых полей с помощью расширенных настраиваемых полей

Первое, что вам нужно сделать, это установить и активировать плагин Advanced Custom Fields. Для получения дополнительной информации см. Наше пошаговое руководство по установке плагина 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 позволяет отображать сообщения с настраиваемыми ключами и их значениями. Например, если вы пытаетесь создать настраиваемую страницу архива для отображения всех сообщений с определенными настраиваемыми ключами, вы можете использовать класс WP_Query для запроса сообщений, соответствующих этим полям.

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

<?php
$args = array(
    'meta_key'   => 'Mood',
    'meta_value' => 'Happy'
);
$the_query = new WP_Query( $args );

// 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 вашей темы или в плагин для конкретного сайта.

<?php
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;
}

Этот код подключает функцию к фильтрам 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. Что, если вам нужно показать их вне цикла? Например, на боковой панели отдельного сообщения.

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

<?php
global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, 'key', true);
wp_reset_query();
?>

Не забудьте заменить ключ своим именем настраиваемого поля.

Отображение настраиваемого заголовка, нижнего колонтитула, боковой панели с помощью настраиваемых полей

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

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

Добавление настраиваемой боковой панели в сообщение с помощью настраиваемого поля

Теперь вам нужно отредактировать файлы темы WordPress, например single.php, где вы хотите отображать настраиваемую боковую панель. Вы будете искать следующий код:

<?php
get_sidebar();
?>

Замените эту строку следующим кодом:

<?php
global $wp_query;
$postid = $wp_query->post->ID;
$sidebar = get_post_meta($postid, "sidebar", true);
get_sidebar($sidebar);
wp_reset_query();
?>

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

Вам нужно будет создать файл sidebar-wpbpage.php в папке вашей темы. Вы можете скопировать код из файла sidebar.php вашей темы в качестве отправной точки.

Управление содержимым RSS-канала с помощью настраиваемых полей

Хотите отображать дополнительные метаданные или контент для пользователей RSS-канала? Используя настраиваемые поля, вы можете управлять своей RSS-лентой WordPress и добавлять в нее настраиваемый контент.

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

<?php
function WPeginner_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', 'WP_postrss');
add_filter('the_content', 'WP_postrss');

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

Управление заголовком RSS-канала с помощью настраиваемых полей

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

Сначала вы добавляете следующий код в файл functions.php вашей темы или в плагин для конкретного сайта.

<?php
function WP_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', 'WP_titlerss');

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

Пользовательские поля спонсируемых и гостевых сообщений

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

Хотите узнать больше интересных советов по 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? Свяжитесь сейчас
[email protected]

Это переведенная версия оригинальной статьи от wpbeginner, весь контент, изображения и авторство принадлежит автору

14 важных советов по защите админки WordPress (обновлено)

Вы видите много атак на вашу админку WordPress? Защита админки от несанкционированного доступа позволяет блокировать многие распространенные угрозы

Как автоматически публиковать сообщения WordPress в LinkedIn

Вы хотите автоматически публиковать свои сообщения WordPress в LinkedIn? LinkedIn - это социальная сеть профессионалов и очень сильная платформа для привлечения

Как добавить бесплатный SSL в WordPress с помощью Let's Encrypt

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

Как перейти с Blogger на WordPress без потери рейтинга Google

Вы хотите перенести свой блог с Blogger на WordPress? Хотя Blogger - отличный бесплатный инструмент для ведения блога, многие новички вскоре осознают его ограничения