Як відобразити значення користувацьких полів на сторінці


17

У мене є власний тип публікації під назвою «програмне забезпечення», який міститься в різних спеціальних полях, таких як підзаголовки, ціна, знімки екрана, посилання на завантаження тощо. Я створив функцію, щоб дозволити використовувати вікно редагування tinyMCE для деяких із цих спеціальних полів. Я намагався відобразити ці поля на сторінці, але не мав успіху.

Я використовую такий метод:

<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>

Ось посилання на сторінку.

Нижче <hr/>на сторінці - список усіх створених мета. ТІЛЬКО одним із полів, яке відображатиметься, є «ціна» з якоїсь дивної причини.

Хтось має уявлення про те, чого мені не вистачає?


це справді get_post_meta()функція, і якщо ви викликаєте її всередині циклу, вона повинна працювати ... Якщо ви не використовуєте правильну назву спеціального поля. Вони часто поставляються з префіксом, якщо вони реалізовані через плагін, як метабокс. Чи можете ви опублікувати код, як ви заявляєте свої власні поля? Рішенням було б відкрити таблицю wp_postmeta в PhpMyAdmin та здійснити пошук стовпця meta_keyLIKE% ...% та вказати "підзаголовок" як значення meta_key. Ви точно побачите, під яким ім’ям Wordpress зберігає ваше власне поле.
пікселін

Я знаю, що це давнє, але я використовую цей sql, щоб отримати список всіх метаполей у phpmyadmin: SELECT m.meta_key ВІД wp_postmeta m GROUP BY m.meta_key
ssaltman

Відповіді:


17

Ну, ви використовуєте:

get_post_meta(get_the_ID(), 'subtitle', TRUE);

Отже, ви говорите Wordpress, щоб отримати мета-значення поля "субтитрів" і щоб повернене значення було у форматі рядка. Дивіться docu get_post_meta () .

Щоб отримати всі метадані публікації, замість цього скористайтеся функцією get_post_custom () . Наприклад, якщо ви знаходитесь у циклі:

$custom = get_post_custom();
foreach($custom as $key => $value) {
     echo $key.': '.$value.'<br />';
}

Це поверне всі метадані публікації. Якщо ви хочете перевірити, наприклад, метаполе "ціна":

if(isset($custom['price'])) {
    echo 'Price: '.$custom['price'][0];
}

В останньому блоці коду відсутнє а)
carbide20

1
здається , що $custom['price']повертає масив , так що ви , можливо , буде потрібно зробити$custom['price'][0]
Wal

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.