Почему не работает get_post_meta? - PullRequest
1 голос
/ 16 ноября 2010

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

<img src="<?php echo FCG_PLUGIN_URL; ?>/scripts/timthumb.php?src=<?php echo get_post_meta($post->ID, 'slider_image', true); ?>&h=250&w=400&zc=1" alt="<?php echo $post_title; ?>" />

На производстве это HTML-код, который я получаю:

<img alt="Post Title" src="http://***.com/wp-content/plugins/jquery-slider-for-featured-content/scripts/timthumb.php?src=/&amp;h=50&amp;w=80&amp;zc=1">

Вы можете увидеть точку src = в строкепусто - как будто там ничего нет.Я изолировал и echo'd только get_post_meta, и это пробел.Я на 100% уверен, что он правильно назван в посте - я что-то упускаю из виду?

Ответы [ 9 ]

7 голосов
/ 24 мая 2011

Если вы вызываете get_post_meta внутри цикла, тогда вы должны вызвать get_post_meta(get_the_id(), 'YOURKEY', true) вместо get_post_meta($post->ID, 'YOURKEY', true)

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

1 голос
/ 25 августа 2015

Вы также можете использовать get_post_meta ($ loop-> post-> ID, 'yourkey', true);если вы используете $ loop = new WP_Query ($ args);или что-то подобное.

1 голос
/ 04 апреля 2012

Это из-за автосохранения.используйте эти строки для предотвращения автоматического сохранения и пользовательских привилегий.

// Bail if we're doing an auto save  
if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; 

 // if our current user can't edit this post, bail  
if( !current_user_can( 'edit_post' ) ) return;
1 голос
/ 16 ноября 2010

Поиск термина "slider_image" в таблицах wp_posts и wp_postmeta с использованием phpmyadmin. Затем просмотрите строку, в которой она есть, чтобы увидеть, есть ли что-нибудь внутри.

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

<p><a href="<?php echo get_post_meta($post->ID, 'resume', true) ?>"><img src="<? bloginfo('template_url'); ?>/img/downloadresume.png"></a></p>
0 голосов
/ 22 июля 2013
<?php
// Get custum fields and values 
$mykey_values = get_post_custom_values('my_key');
foreach ( $mykey_values as $key => $value ) {
echo "$key  => $value ('my_key')<br />"; 
}

?>
0 голосов
/ 01 марта 2013

это может быть связано с ошибкой

# 18210 (Update_post_meta нечувствителен к регистру для meta_key, но get_post_meta НЕ) - WordPress Trac

https://core.trac.wordpress.org/ticket/18210

Itобъяснил бы различный опыт, в зависимости от db_collation ... (простите, если это полная чепуха, я новичок ..)

Конфигурация кодировки и сопоставления базы данных WordPress |хакре на wordpress http://hakre.wordpress.com/2010/12/26/wordpress-database-charset-and-collation-configuration/

0 голосов
/ 24 февраля 2013
<?php get_post_meta(get_the_id(), 'YOURKEY', true) instead of get_post_meta($post->ID, 'YOURKEY', true) ?>

У меня работает!

0 голосов
/ 06 марта 2011

Я написал несколько простых шаблонных функций, которые позволяют вам использовать метаданные (пользовательские данные) в вашей теме. Вы можете написать шаблонную функцию для любой пары ключ / значение метаданных и отобразить ее в файле темы следующим образом:

<?php the_meta_templates($meta_data_keys) ?>
<?php the_template_for($meta_data_key) ?>

Не стесняйтесь проверить основные функции из github и попробуйте их. Вам нужно будет добавить их в ваш файл functions.php темы.

0 голосов
/ 16 ноября 2010

На самом деле, он дал вам «/», что не является ничем.Я бы сказал, что это то, что сохраняется как «slider_image».Проверьте сообщение (или базу данных напрямую).

...