如何在博客页面上使用GET_POST_CUSTOM函数?

时间:2013-03-29 作者:Rolnin

首先,我有一个用于主页和博客页面的静态页面。我为页面创建了一个自定义框,以便为页面设置唯一的背景图像。我的想法是在所有页面模板上工作,但在博客页面上有些错误。

header.php is same on all page

<head>
{...}
<?php $values = get_post_custom( $post->ID );  ?>
<style type="text/css">
    body { background-image:url("<?php echo $values[\'background_image_meta\'][0]; ?>"); }
</style>
{...}
</head>

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

基本问题是没有变量$post 在您的header.php. 该变量可能存在于global scope, 但您的代码在函数范围内运行load_template() 被调用的get_header().

因此,您有四种选择:

使用将全局变量导入到函数中global 关键字。全球$员额;

// make sure everything is set up as a post object
$post   = get_post( $post );
$values = get_post_custom( $post->ID );
使用get_queried_object_id() 获取ID,类似于hepii110’s suggestion.

$values = get_post_custom( get_queried_object_id() );
使用get_the_ID(). 这几乎与版本1相同。

$values = get_post_custom( get_the_ID() );
致电get_post_custom() 没有帖子ID。它将尝试自动找到正确的ID。

$values = get_post_custom();

SO网友:hepii110

改变

$values = get_post_custom( $post->ID ); 

$values = get_post_custom( get_queried_object()->ID );

结束

相关推荐

在Add Post Metabox中自定义WordPress Media Upload和New Media Manager菜单

我在metabox中使用Wordpress Media Upload(<;3.5)和Media Manager(>=3.5)作为上载字段,并且需要自定义菜单,以便它们只具有上载和媒体库功能,而不具有“从URL”/“从URL插入”和“创建库”。所以我需要移除它们。我无法使用中提到的Wordpress筛选器this solution, 因为我在metabox中使用它,它存在于Wordpress的新帖子页面中,该页面已经具有“添加媒体”功能,如果我使用这样的过滤器,它将被破坏。是否有任何通过Javas