Вывод произвольных полей ACF в шаблонах WordPress

Вывод произвольных полей ACF в WordPress

В этом уроке мы будем выводить произвольные поля или как их еще называют мета поля в WordPress. Будем выводить поля заданные плагином Advanced Custom Fields (ACF). В прошлом уроке мы научились создавать мета поля установив плагин Advanced Custom Fields. Это важно, потому что для вывода будем использовать функции которые заданы этим плагином. То есть если вы создали поля без установки этого плагина, то вам следует использовать другие функции. С пояснениями закончили, приступим.

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

Произвольные типы записей и поля:

  1. Добавление произвольных типов записей в WordPress
  2. Вывод произвольных типов записей в WordPress
  3. Добавление произвольных полей к записям в WordPress
  4. Вывод произвольных полей в записях WordPress

 

В плагине ACF есть замечательная документация. Рекомендую обращаться к ней при выводе мета полей в шаблоне WordPress. Знакомство начнем с двух функций.

Часть первая. Теория

Если чувствуете себя уверенно, можно сразу перейти ко второй части.

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

Функция — get_field()

Возвращает значение заданного поля.

Это очень универсальная функция. Ее можно использовать чтобы получить значение, вывести значение (через echo), и взаимодействовать со значением. Обратите внимание, что тип возвращаемой переменной будет соответствовать типу поля (для текстового поля — это будет строка, для изображения — массив, в некоторых случаях — это может быть многомерный массив). Источник

Параметры

<?php $field = get_field($field_name, $post_id, $format_value); ?>
  • $field_name: имя поля из которого будут получены данные, пример: “page_content” Обязательный параметр.
  • $post_id: ID записи в которой было задано данное значение. По умолчанию равно текущему посту в которой применяется данная функция. Необязательный параметр. Также это может быть ID опции, таксономии, пользователя, и т.п.
  • $format_value: форматировать или нет значение полученное из БД. По умолчанию — true. Необязательный параметр.

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

<?php 

/*
*  get a field value from the current post
*/

$value = get_field( "text_field" ); 

/*
*  get a field value from another post
*/

$value = get_field( "text_field", 123 ); 

/*
*  use get_field with conditional statements
*/

$value = get_field( "text_field" );
if( $value )
{

}
else
{

}

Функция — the_field()

Отображает значение заданного поля. Эта функция аналогична выражению “echo get_field($field_name)”. Источник

Параметры

<?php the_field($field_name, $post_id); ?>
  • $field_name:имя поля из которого будут получены данные, пример: “page_content” Обязательный параметр.
  • $post_id: ID записи в которой было задано данное значение. По умолчанию равно текущему посту в которой применяется данная функция. Необязательный параметр. Также это может быть ID опции, таксономии, пользователя, и т.п.

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

<?php 

/*
*  display a field value from the current post
*/

the_field( "text_field" ); 

/*
*  display a field value from another post
*/

the_field( "text_field", 123 ); 

/*
*  use the_field / get_field with conditional statements
*/

if( get_field( "text_field" ) ): ?>
    <p><?php the_field( "text_field" ); ?></p>
<?php endif;>

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

Часть вторая. Практическая

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

Текстовое поле, текстовый блок

<?php the_field('text'); ?>

<?php the_field('textarea'); ?>

Изображение

Базовый способ. Отображение картинки.

<?php 

$image = get_field('image');

if( !empty($image) ): ?>

    <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />

<?php endif; ?>

Продвинутый способ. Разбор массива по переменным.

<?php 

$image = get_field('image');

if( !empty($image) ): 

    // vars
    $url = $image['url'];
    $title = $image['title'];
    $alt = $image['alt'];
    $caption = $image['caption'];

    // thumbnail
    $size = 'thumbnail';
    $thumb = $image['sizes'][ $size ];
    $width = $image['sizes'][ $size . '-width' ];
    $height = $image['sizes'][ $size . '-height' ];

    if( $caption ): ?>

        <div class="wp-caption">

    <?php endif; ?>

    <a href="<?php echo $url; ?>" title="<?php echo $title; ?>">

        <img src="<?php echo $thumb; ?>" alt="<?php echo $alt; ?>" width="<?php echo $width; ?>" height="<?php echo $height; ?>" />

    </a>

    <?php if( $caption ): ?>

            <p class="wp-caption-text"><?php echo $caption; ?></p>

        </div>

    <?php endif; ?>

<?php endif; ?>

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

<?php 

$image = get_field('image');
$size = 'full'; // (thumbnail, medium, large, full or custom size)

if( $image ) {

    echo wp_get_attachment_image( $image, $size );

}

?>

Файл

Простой способ. Вывод ссылки на файл.

<?php $myfile = get_field('file'); ?>

<a href="<?php echo $myfile['url']; ?>" >Download File</a>

Расширенный способ. Вывод ссылки, заголовка, подписи и описания файла.

<?php

        $myfile = get_field('file');

        if( !empty($myfile) ): ?>

        <p>
            <a href="<?php echo $myfile['url']; ?>" >
                Download File "<?php echo $myfile['title']; ?>"
            </a><br>
            
            <?php echo $myfile['caption']; ?><br>

            <?php echo $myfile['description']; ?>

        </p>

<?php endif; ?>

Дебаг для поля с файлом

<?php 

//Return value = Object, requires ACF 3.3.7+

$file = get_field('field_name');

// view array of data
var_dump($file);

?>

Календарь

Для вывода даты заданной через date picker, используем:

<?php
/*
*  Create PHP DateTime object from Date Piker Value
*  this example expects the value to be saved in the format: yymmdd (JS) = Ymd (PHP)
*/

$date = DateTime::createFromFormat('Ymd', get_field('date_picker'));
echo $date->format('d-m-Y');

?>

Сортировка постов по дате заданной через поле выбора даты.

<?php

/*
*  Order Posts based on Date Picker value
*  this example expects the value to be saved in the format: yymmdd (JS) = Ymd (PHP)
*/

$posts = get_posts(array(
    'meta_key' => 'custom_order', // name of custom field
    'orderby' => 'meta_value_num',
    'order' => 'ASC'
));

if( $posts )
{
    foreach( $posts as $post )
    {
        setup_postdata( $post );

        // ...

    }

    wp_reset_postdata(); // IMPORTANT - reset the $post object so the rest of the page works correctly
}

/*
*  Format examples
*/

$js = "yymmdd"
$php = "Ymd"

$js = "dd/mm/yy"
$php = "d/m/Y"

$js = "yy_mm_dd"
$php = "Y_m_d"

?>

Карта Google

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

Первый способ, с официального сайта по документации по ACF

Первая часть. Отвечает только за генерацию карты Google.

<style type="text/css">

.acf-map {
    width: 100%;
    height: 400px;
    border: #ccc solid 1px;
    margin: 20px 0;
}

</style>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script type="text/javascript">
(function($) {

/*
*  render_map
*
*  This function will render a Google Map onto the selected jQuery element
*
*  @type    function
*  @date    8/11/2013
*  @since    4.3.0
*
*  @param    $el (jQuery element)
*  @return    n/a
*/

function render_map( $el ) {

    // var
    var $markers = $el.find('.marker');

    // vars
    var args = {
        zoom        : 16,
        center        : new google.maps.LatLng(0, 0),
        mapTypeId    : google.maps.MapTypeId.ROADMAP
    };

    // create map                
    var map = new google.maps.Map( $el[0], args);

    // add a markers reference
    map.markers = [];

    // add markers
    $markers.each(function(){

        add_marker( $(this), map );

    });

    // center map
    center_map( map );

}

/*
*  add_marker
*
*  This function will add a marker to the selected Google Map
*
*  @type    function
*  @date    8/11/2013
*  @since    4.3.0
*
*  @param    $marker (jQuery element)
*  @param    map (Google Map object)
*  @return    n/a
*/

function add_marker( $marker, map ) {

    // var
    var latlng = new google.maps.LatLng( $marker.attr('data-lat'), $marker.attr('data-lng') );

    // create marker
    var marker = new google.maps.Marker({
        position    : latlng,
        map            : map
    });

    // add to array
    map.markers.push( marker );

    // if marker contains HTML, add it to an infoWindow
    if( $marker.html() )
    {
        // create info window
        var infowindow = new google.maps.InfoWindow({
            content        : $marker.html()
        });

        // show info window when marker is clicked
        google.maps.event.addListener(marker, 'click', function() {

            infowindow.open( map, marker );

        });
    }

}

/*
*  center_map
*
*  This function will center the map, showing all markers attached to this map
*
*  @type    function
*  @date    8/11/2013
*  @since    4.3.0
*
*  @param    map (Google Map object)
*  @return    n/a
*/

function center_map( map ) {

    // vars
    var bounds = new google.maps.LatLngBounds();

    // loop through all markers and create bounds
    $.each( map.markers, function( i, marker ){

        var latlng = new google.maps.LatLng( marker.position.lat(), marker.position.lng() );

        bounds.extend( latlng );

    });

    // only 1 marker?
    if( map.markers.length == 1 )
    {
        // set center of map
        map.setCenter( bounds.getCenter() );
        map.setZoom( 16 );
    }
    else
    {
        // fit to bounds
        map.fitBounds( bounds );
    }

}

/*
*  document ready
*
*  This function will render each map when the document is ready (page has loaded)
*
*  @type    function
*  @date    8/11/2013
*  @since    5.0.0
*
*  @param    n/a
*  @return    n/a
*/

$(document).ready(function(){

    $('.acf-map').each(function(){

        render_map( $(this) );

    });

});

})(jQuery);
</script>

Вторая часть. Выводит на карте единичный маркер.

<?php 

$location = get_field('location');

if( !empty($location) ):
?>
<div class="acf-map">
    <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>"></div>
</div>
<?php endif; ?>

Другой вариант второй части, для вывода нескольких маркеров на карте.

<?php if( have_rows('locations') ): ?>
    <div class="acf-map">
        <?php while ( have_rows('locations') ) : the_row(); 

            $location = get_sub_field('location');

            ?>
            <div class="marker" data-lat="<?php echo $location['lat']; ?>" data-lng="<?php echo $location['lng']; ?>">
                <h4><?php the_sub_field('title'); ?></h4>
                <p class="address"><?php echo $location['address']; ?></p>
                <p><?php the_sub_field('description'); ?></p>
            </div>
    <?php endwhile; ?>
    </div>
<?php endif; ?>

Источник

Второй способ, вариант с форума поддержки WordPress.

<div id="view1">
<?php
$location = get_field('carte_google');
if( ! empty($location) ):
?>
<div id="map" style="width: 100%; height: 350px;"></div>
<script src='http://maps.googleapis.com/maps/api/js?sensor=false' type='text/javascript'></script>

<script type="text/javascript">
  //<![CDATA[
	function load() {
	var lat = <?php echo $location['lat']; ?>;
	var lng = <?php echo $location['lng']; ?>;
// coordinates to latLng
	var latlng = new google.maps.LatLng(lat, lng);
// map Options
	var myOptions = {
	zoom: 9,
	center: latlng,
	mapTypeId: google.maps.MapTypeId.ROADMAP
   };
//draw a map
	var map = new google.maps.Map(document.getElementById("map"), myOptions);
	var marker = new google.maps.Marker({
	position: map.getCenter(),
	map: map
   });
}
// call the function
   load();
//]]>
</script>
<?php endif; ?> 

</div>

Источник

В этом уроке были рассмотрены основные принципы и способы вывода в шаблоне базовых мета полей в WordPress заданных через плагин Advanced Custom Field. Как вывести не описанные здесь поля — можно найти в документации плагина.

 

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

Произвольные типы записей и поля:

  1. Добавление произвольных типов записей в WordPress
  2. Вывод произвольных типов записей в WordPress
  3. Добавление произвольных полей к записям в WordPress
  4. Вывод произвольных полей в записях WordPress
  • Andrew

    Спасибо за статью. А еще хотелось бы узнать более подробно о выводе публикаций в зависимости от значения полей (Как организовать фильтрацию публикаций). Спасибо.

    • Пока такого не делал. Как только сделаю — сразу опубликую урок 😉

  • staleer

    Мне необходимо вставить карту в записи. Не могу никак разобраться что и куда вставить. разжуйте мне пжста (((голову уже сломал….

    • Создаете поле с картой. В записи заполняете его. Ставите адрес и метку на карте.
      В шаблоне, который выводит данную запись, в месте где хотите вывести карту вставляете код: либо весь код из первого способа либо весь код из второго способа — указанного выше на странице.
      И не забудьте в коде заменить имя поля на свой. Например для 2-го способа:

      $location = get_field(‘carte_google’); — здесь замените carte_google на название (алиас, ID) вашего поля с картой.

      Надеюсь справитесь. Более подробно это уже надо видео записывать.

  • Кірыл Камароўскі

    Здравствуйте, почему то ломается вывод контента при попытке вывести дату через плагин

    • Странно. Посмотрите CSS — возможно где то есть баг, и его можно поправить самостоятельно.

      • Кірыл Камароўскі

        всё пересмотрел, похоже беда с плагіном, впринципе могу пустить на тестовый сайт у себя на хостинге посмотрите, плагин действительно шикарный, потому давайте думать что не так

        • Да, посмотреть на тестовом сайте было бы хорошо.

          • Кірыл Камароўскі

            в таком случае завтра запущу тест

  • Dream Box

    При выводе гугл карты почему-то уменьшились маркеры +/- и полоса соединяющая их вместе. И не подскажете как вывести над картой дополнительно и сам адрес?
    Спасибо.

    • когда-то сталкивался с такой проблемой. Дело в том (если конечно это ещё актуально), что явно у вас в стилях есть следующее: img { max-width: 100%; }. Если вы немного увеличите специфичность селектора (например пусть только картинки лежащие в … .container или в любом удобном для вас блоке имели такие свойства), то с большой долей вероятности проблема с картинками на карте решится.

  • Sony

    Никак не могу разобраться, как вместе со значением вывести Ярлык поля
    в формате Ярлык поля: Значение

  • Делаю шаблон для вывода пользовательских полей в котором записб должна выводится примерно так: Описание+кол-вщ комнат + количество ванных+картинки+место на карте(есть ли возможность всунуть слайдер в пользовательскте поля?)….Ну и вообще у кого есть идеи как это лучше сделать буду благодарен

    • Слайдер можно вставить — с помощью множественного поля картинки. В ACF — множественные поля доступны в премиум версии. НО вместо него можно использовать плагин Types, в нем тоже есть кастомные поля, и их можно делать множественными.

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

  • Кірыл Камароўскі

    Здравствуйте, есть беда, почему то не выводит картинку через плагин

    • Добрый день. А вы точно задаете эту картинку через ACF в админке? Просто я вижу что здесь речь идет о категории, а не о кастомном типе записей.

      • Кірыл Камароўскі

        да через ACF, имя поля поменял и там и там, были мысли что оно плохо с тирэ работает, в общем экспериментировал с параметрами, так что имя поля в порядке, где то стопорится вывод

      • Кірыл Камароўскі

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

        • К сожалению сходу не подскажу, надо только разбираться и воспроизводить.
          Посмотрите документацию к плагину: advancedcustomfields.com/resources

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

          Если что есть аналогичный плагин TYPES (использую его в последнем проекте), но если перейдете на него — то надо будет всю структуру заново сделать на нем, т.к. совместно с ACF он не взаимодействует.
          https://wp-types.com/
          https://wp-types.com/documentation/functions/#image

          • Кірыл Камароўскі

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

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

  • Максим

    Задал картинки через Advanced Custom Fields. Указал там имя поля rubric_image. В админке поля отобразились, добавил к паре рубрик по картинке, прописал в файле category-rybrica-1.php код:

    Но отображаются только ссылки на категории, а картинок нет! В чем дело?

    • Как интересно… Не знал что произвольными полями можно привязать картинку к рубрике. Обычно делаю по другому http://wpruse.ru/finty-ushami/vyvod-spiska-rubrik-s-izobrazheniyami/
      А что получаете в переменную из поля? ID картинки или ссылку на нее?

      • Максим

        Я, честно говоря, вообще не шарю) Заменил код на странице рубрики, чтоб он выводил подрубрики с картинками. Сам код на первой картинке. В итоге на странице выводятся ссылки и названия рубрик, но не выводятся картинки(
        В каком файле можно посмотреть то, о чем вы меня спросили?
        Вроде бы переменной присваивается значение функции:
        $img_arr = get_field («rubric_image»)

      • Максим

        Аа, все. Понял, о чем вы. В свойствах поля Advanced Custom Fields вот что у меня стоит:

        • Значит у вас возвращается ссылка на картинку. У вас нету массива который вы пытаетесь вызвать, у вас просто ссылка, значит и выводить ее надо примерно так

          <img src="» />

          А в вашем случае это будет выглядеть так

          $img_arr = get_field («rubric_image»);

          <img src="» />

          • Максим

            Как вы сказали — возникает куча проблем с синтаксисом, и все равно ничего не отображается.
            А не подскажите, как этот массив задать? Ставил через админку и изображаемый объект, и ссылку на изображение, и ID изображения — ничего не выходит. У меня эта функция:
            $img_arr = get_field(‘rubric_image’);
            тупо ничего не выводит. Проверял через echo $img_arr; и print_r($img_arr);
            Тупо пустота.

          • Чтобы массив задать, надо в настройках поля установить Изображаемый объект. А как вы это поле вообще к рубрике привязали?

          • Максим

            Ставил я и Изображаемый объект — ничего не удавалось ((
            Привязал так:
            В Местоположение, Правила
            Выбрал Термина таксономии равно Рубрики.
            Может это как-то поможет разрулить проблему.

          • Ну понятно, это вы не к рубрикам привязали, а к записям в этих рубриках. Две большие разницы. Одним словом не получится у вас или я просто не знаю как это сделать.
            Обычно я делал через специальный плагин. Вот здесь есть подробности http://wpruse.ru/finty-ushami/vyvod-spiska-rubrik-s-izobrazheniyami/ Но данный способ позволяет прилепить картинку к родительской рубрике, а вот как сделать чтобы еще картинки в дочерних рубриках выводились — это я не знаю.

          • Максим

            Ага-а, что-то проясняется.
            Я пробовал ваш метод, но он что-то вообще ничего не вывел (при помощи плагина Taxonomy Images). Сейчас вот его активировал, сделал, как у вас написано, получил код:

            Но на странице вывелись только пустые тэги:

    • Кірыл Камароўскі

      я подобную проблемму решил через плпгин Taxonomy Images, как с этим плагином решить вопрос я к сожалению не разобрался

      • Максим

        Да вот и Taxonomy Images установил по совету Артема. Код вставил, а не выдает что-то ничего опять =(
        Просто жесть.

        • Кірыл Камароўскі

          Смотрите , вы гдето ошибку сделали, у менвсё заработало

        • Плагин отлично работает, но есть маленький нюанс: картинки можно подставить только к родительским рубрикам. То есть, если у вас, например, есть рубрика Авто, а внутри рубрики Грузовое, Легковое и тд, то картинку можно будте подставить только к родительской рубрике, в данном примере — Авто
          Да и мне как проще и удобнее показался плагин Categories Images, у него как функции по проще реализованы и удобнее

        • Да и еще момент, в вашем случае rubrika-1 — это терма, а таксономия будет в зависимости от типа записи, если стандартная запись, то category. Именно по этому и не выводит, не понимает откуда данные брать

          • Максим

            О да, я такого счастья не испытывал со времен первого соития 😀
            Спасибо, дружище!
            Только советую еще добавить в статье примечание к пункту:
            ‘parent’ => 1, // глубина вложенности
            А то, например, понадобится вывести подкатегории 2-го или 3-го уровня.

            Но в целом получил что хотел — теперь осталось с версткой разобраться, а то картинки какие-то корявые и ссылок не видно %)

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

  • Подскажите, как вывести массив пользовательских полей, наподобие облака тегов. Спасибо

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

  • bulkmaker

    Добрый день как добавить поле к категории и к странице тегов? Как добавить более менее разобрался, а вот как вывести совсем не понимаю. Хочу выводить хтмл код перед и после постов. Можете посоветовать что нибудь? Хочется использовать только плагин ACF

  • Олег

    Создал произвольное поле для таксономии, а вывести никак не могу!

  • Олег

    Не работает!( Хелп! произвольное поле таксономии!

    • Теперь надо вывести это поле.
      Например: echo $field[‘url’];

      • Олег

        неа…( не работает!

        • Посмотрите как приведено у меня в примере определение переменной картинки.

          В разделе — Изображение
          Базовый способ. Отображение картинки.

          А еще лучше посмотрите официальную документацию плагина. Я допускаю что она могла измениться, с момента написания урока.

          • Олег

            все взято с оф сайта. Здесь, как я понимаю, проблема в том, что выводится это в шаблоне taxnomy-taxnomy.php. Хотя с тегами проблем нет.

  • Тёмик

    А есть возможно множественного выбора изображений? Или нужно создавать штук 20 полей?

    • Посмотрите в возможных полях — в документации плагина, вам нужно для этого специальное поле. Возможно оно есть в расширенной платной версии плагина. Или посмотрите плагин Types.

  • ComputerZen

    А можно вывести на главной текст конкретной записи?

    • Можно. Смотрите документацию или уроки по этой теме для WordPress. Данная статья о выводе кастомных полей, а не записей.

  • Taras D

    можно ли вывести несколько значений одного поля?

    У меня есть корзина, куда добавляются одинаковые поля различных товаров, как цена и артикул. Как вывести сразу несколько значений одного поля на странице? Спасибо!

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

      • Taras D

        уже сделал! Спасибо!

      • Taras D

        есть много постов, в каждом есть (произвольное поле) цена. Как перебрать все значения даного поля. Тоесть есть 10 постов товара( в каждом есть своя цена), как вивести (или перебрать в масиве) 10 цен(цена 1, цена 2, цена 3 и т.д.)????

  • Станислав

    Привет, такой вопрос:
    поставил types, там уже есть произвольные поля. то есть плагин ACF не нужен ?

    • Да, можно создать произвольные поля через Types. (Можно через любой другой плагин, можно самому прописать в functions.php)

      • Станислав

        Понятно, спасибо

  • MoonZeel

    Здравствуйте, я добавляю в тип поля ‘галерея’ через update_field, все норм, только вот в самой странице галереи в админке в кастомном поле не видно картинок, а выводить их можно, получается значения у поля есть, а миниатюры в админке их не посмотришь, значение thumbnail я задаю такую же как url. Подскажите пожалуйста как быть в этом случае?

  • Tony Sid

    А не подскажете, как вывести несколько записей/товаров плиткой? Делаю вкладку на странице товара «Доп. оборудование» и не знаю как вывести выбранные товары плиткой.

    • Вывод в данном случае ничем не будет отличаться от обычного. Плиткой — это исключительно дело разметки и шаблона вывода. Вывод либо стандартный, либо как в этой статье http://rightblog.ru/1946

      • Tony Sid

        С выводом разобрался, выводиться все маркированным списком. Теперь не могу разобраться, как таки сделать плитку… Общую концепцию понимаю, как окретно сделать — нет(

        • Отлично. Теперь остается настроить шаблон вывода. Он либо прописан прямо в том месте где вы вызываете цикл. Либо там идет подключение файла с шаблоном ( смотрите что-то похожее на get template) который отвечает за вывод, и тогда изменять разметку надо в этом шаблоне.

          • Tony Sid

            шаблон не вызывается, просто HTML код списка, в и выводится значение поля.
            Теперь нужно разобратья, как создавать шаблоны…

  • Андрей Халецкий

    Супер! Спасибо Вам огромное, за такую подробную серию уроков!

    А можете пожалуйста подсказать как в личном кабинете пользователя сделать поле,
    чтобы данные, которые он вносит в это поле, автоматически подставлялись
    в определенное место на странице сайта?

    Помогите пожалуйста, думаю многим будет полезно.
    Или может знаете, где взять информацию?

    • Спасибо!)

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

      • Андрей Халецкий

        Хорошо. Благодарю за ответ. Будем искать.

  • Iurii Sumtsov

    ребята помогите определить инструменты вывода таких полей https://uploads.disquscdn.com/images/2996d825e62d5fe9954dc97f2dfdb91c7014b3c6b5d682b002b7de7df97d7145.png