2010-11-15 37 views
1

Simple Wordpress問題 - get_post_meta不檢索自定義字段值。下面是從自定義字段拉動代碼:爲什麼不是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%確定它在文章中的名字是正確的 - 我在這裏失蹤的東西是否顯眼?

回答

1

使用phpmyadmin在wp_posts和wp_postmeta表中搜索術語「slider_image」。然後查看有內容的行。

也嘗試更改自定義值的名稱作爲測試,看看是否有效。我用這個確切的代碼做類似你的東西,它的工作原理:

<p><a href="<?php echo get_post_meta($post->ID, 'resume', true) ?>"><img src="<? bloginfo('template_url'); ?>/img/downloadresume.png"></a></p> 
0

實際上,它給了你'/',這不是什麼。我會說這就是'slider_image'保存的內容。檢查帖子(或直接數據庫)。

+0

你是對的 - 我會檢查數據庫。 – dmanexe 2010-11-15 23:51:18

+0

那麼,有一張名爲「wp_postmeta」的表... :) – 2010-11-16 01:09:37

0

我已經寫了一些簡單的模板功能,使您能夠在您的主題使用的元數據(自定義數據)。你可以寫任何元數據的鍵/值對的模板功能,並使其在主題文件,像這樣:

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

可以隨時從github檢查出的基本功能,並給他們一個嘗試。你需要將它們添加到你的主題functions.php文件中。

6

如果您呼叫的循環內部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停止工作,因此這也是針對這些特定情況的解決方案之一。

+0

這對我有效! – Astrotim 2012-12-17 11:36:07

+0

也適合我! – 2013-07-03 23:35:55

1

它因爲自動保存。 使用這些行來防止自動保存和用戶權限。

// 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; 
0
<?php get_post_meta(get_the_id(), 'YOURKEY', true) instead of get_post_meta($post->ID, 'YOURKEY', true) ?> 

對我的作品!

0
<?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 />"; 
} 

?> 
1

您也可以使用get_post_meta($環 - >後> ID, 'yourkey',真)hakre;如果你使用$ loop = new WP_Query($ args);或類似的東西。

+0

我發現這非常有用! – Daniel 2016-07-04 19:27:37