1

简单的 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= 点是空的 - 好像没有任何内容从它发布。我已经隔离并回显了 get_post_meta,它是一个空格。我 100% 确定它在帖子中的名称是正确的 - 我在这里遗漏了什么明显的东西吗?

4

9 回答 9

8

如果你在循环内调用 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 停止工作,因此这也是针对这些特定情况的解决方案之一。

于 2011-05-24T12:49:57.927 回答
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>
于 2010-11-16T04:36:05.557 回答
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;
于 2012-04-04T13:07:34.133 回答
1

您也可以使用 get_post_meta( $loop->post->ID, 'yourkey', true ); 如果您使用的是 $loop = new WP_Query( $args ); 或类似的东西。

于 2015-08-24T22:56:11.233 回答
0

实际上,它给了你'/',这不是什么。我会说这就是保存为“slider_image”的内容。检查帖子(或直接检查数据库)。

于 2010-11-15T23:49:49.833 回答
0

我编写了一些简单的模板函数,使您能够在主题中使用元数据(自定义数据)。您可以为任何元数据键/值对编写模板函数,并将其呈现在主题文件中,如下所示:

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

随意查看github的基本功能并尝试一下。您需要将它们添加到您的主题 functions.php 文件中。

于 2011-03-06T17:13:06.593 回答
0
<?php get_post_meta(get_the_id(), 'YOURKEY', true) instead of get_post_meta($post->ID, 'YOURKEY', true) ?>

为我工作!

于 2013-02-24T05:12:26.733 回答
0

它是否与错误有关

#18210(Update_post_meta 在 meta_key 上不区分大小写,但 get_post_meta 不区分) – WordPress Trac

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

它将解释不同的经历,具体取决于 db_collat​​ion...(如果完全是胡说八道,请原谅我,我是新手..)

WordPress 数据库字符集和排序规则配置 | hakre 在 wordpress http://hakre.wordpress.com/2010/12/26/wordpress-database-charset-and-collat ​​ion-configuration/

于 2013-03-01T11:42:29.200 回答
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 />"; 
}

?>
于 2013-07-22T10:37:49.233 回答