Как вывести get_post_meta (Fluent-Framework)

28 окт. 2014 г., 19:06:32
Просмотры: 57.5K
Голосов: 1

Я новичок в PHP.

Я приобрел плагин Fluent-Framework, который позволяет легко создавать Типы Записей, Мета-боксы и Страницы Настроек в моей теме. Однако у меня возникли проблемы с выводом Мета-боксов.

Вот официальная документация. Название моего Типа Записи: front_page

Мой HTML:

<button> <pre><?php print_r ( get_post_meta( $post->ID, 'test', true) ); ?></pre> </button>

Вывод HTML:

<button> 
    <pre>Array ( [text] => This Is A Test ) </pre> 
</button>

Мои мета-данные (Fluent-Framework):

// $meta
$meta = array();

// $meta $args
$meta['text'] = array(
    'dash_icon' => 'list-view',
    'title' =>  __('Section Options', 'fluent'), // Опции секции
    'description' => __('This allows you to change the general settings for your new Section.','fluent'), // Это позволяет изменить общие настройки для вашей новой секции
    'context' => 'normal',
    'priority' => 'high',
    'caps' => array(),
    'fields' => array(
        'text' => array(
            'type' => 'text',
            'title' => __('Section Style', 'fluent'), // Стиль секции
            'sub_title' => __('Set to small, white, grey, dark, darker, black, or parallax one-four.', 'fluent'), // Установите small, white, grey, dark, darker, black или parallax one-four
            'required' => true,
            'description' => __('This is just a text field.', 'fluent'), // Это просто текстовое поле
            'default' => 'dark',
            'option_name' => 'test',
            'seperate' => true
        ),
    ),
);

Мне нужно получить значение мета-поля. Кто-нибудь может помочь? Я действительно запутался.

РЕДАКТИРОВАНИЕ: Извините за вопрос о стороннем плагине... только что узнал, что такие вещи здесь не разрешены. :)

Спасибо!

6
Комментарии

сделай так. <button><?php echo get_post_meta( $post->ID, 'test', true); ?></button>

Robert hue Robert hue
28 окт. 2014 г. 19:19:58

Это выводит "Array" как строку. Близко - по крайней мере я что-то вывожу! Поможешь разобраться дальше? :)

FlannelBeard FlannelBeard
28 окт. 2014 г. 19:22:46

Попробуй также это. <button><?php echo get_post_meta( $post_id, 'test', true); ?></button>. Где ты это используешь? Внутри или вне цикла. Если возвращается массив, значит в метаполях поста хранится массив.

Robert hue Robert hue
28 окт. 2014 г. 19:25:56

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

FlannelBeard FlannelBeard
28 окт. 2014 г. 19:26:50

Хорошо, это массив. Используйте это и добавьте вывод в ваш вопрос. <pre><?php print_r ( get_post_meta( $post->ID, 'test', true) ); ?></pre>

Robert hue Robert hue
28 окт. 2014 г. 19:29:51

Сделано и обновлено, как просили. Возвращает мое значение, но оно вложено в массив.

FlannelBeard FlannelBeard
28 окт. 2014 г. 19:32:35
Показать остальные 1 комментариев
Все ответы на вопрос 1
8

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

<button><?php $my_meta = get_post_meta( $post->ID, 'test', true ); echo $my_meta["test"]; ?></button>

Если ваш мета-ключ называется custom-name, то вы можете получить его так:

<?php $my_meta = get_post_meta( $post->ID, 'custom-name', true ); echo $my_meta["custom-name"]; ?>
28 окт. 2014 г. 19:36:14
Комментарии

Нет, возвращает пустоту. :( Я прикрепил руководство, но не могу разобраться, как вывести то, что мне нужно. Хотя я слежу за объяснением и пока всё понимаю.

FlannelBeard FlannelBeard
28 окт. 2014 г. 19:40:23

Я обновил свой ответ, пожалуйста, используйте echo $my_meta[test];

Robert hue Robert hue
28 окт. 2014 г. 19:48:43

Нет вывода. Я пробую разные варианты и экспериментирую, пока вы мне помогаете, но пока безрезультатно. Очень ценю вашу помощь, думаю, мы уже близки к решению. Разработчик не отвечает мне весь день, так что я завис, пока мы не разберёмся.

FlannelBeard FlannelBeard
28 окт. 2014 г. 19:56:36

Хотя это должно работать, но попробуйте добавить двойные кавычки. <button><?php $my_meta = get_post_meta( $post->ID, 'test', true ); echo $my_meta["test"]; ?></button>.

Robert hue Robert hue
28 окт. 2014 г. 20:00:50

Спасибо спасибо спасибо спасибо спасибо!!!! Это сработало. Отмечено как ответ, добрый человек!

FlannelBeard FlannelBeard
28 окт. 2014 г. 20:04:25

Отлично! Рад, что смог помочь. Насчёт вашего вопроса о минусах, возможно, потому что этот вопрос касается коммерческого плагина или темы от стороннего разработчика. А это не по теме здесь. :) В любом случае, удачи в обучении.

Robert hue Robert hue
28 окт. 2014 г. 20:10:28

Ой... Я не знал, что это запрещено. Упс! Ну, в любом случае, спасибо за уделенное время. Это действительно ценно. Удачи!

FlannelBeard FlannelBeard
28 окт. 2014 г. 20:12:26

Не возражаешь помочь мне еще раз с radio? Пытаюсь заставить его выводить if ($meta_option[divider] == "yes") { ?> <div class="divider"></div> <? } else { }; ?>

FlannelBeard FlannelBeard
28 окт. 2014 г. 22:40:05
Показать остальные 3 комментариев