为页面(不是帖子)调用自定义域

时间:2012-06-18 作者:RCorrie

我正在尝试在模板中放置一个小代码header.php 文件我想获取自定义字段值。

我正在尝试从当前页面调用自定义字段outside 顺便说一句,环路的。

当我需要从帖子中获取自定义字段值时,我可以这样做,但我似乎无法对页面执行此操作。

这是我的代码:

global $wp_query;
$postid = $wp_query->post->ID;
echo get_post_meta($postid, \'teaser-text\', true);
我不确定我做错了什么。我试着换衣服$wp_query->post->ID; 到这个$wp_query->page->ID; 没有成功。

非常感谢您的帮助,谢谢!

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

尝试使用

get_metadata(\'post\', $postid, \'teaser-text, true);
这两者实际上是一样的。不应该有任何区别。早些时候,我提出了错误的论点。var\\u dump()将显示它实际得到的内容。请确保ID正确,“摘要文本”存在。您还可以尝试使用其他元名称(仅用于测试目的)。

SO网友:Stephen Harris

这未经测试,但请尝试:

if ( is_page() ){
    $page_id = get_queried_object_id();
    $meta = get_post_meta( $post_id, \'teaser-text\',true)
}

SO网友:Dagan Henderson

您必须启动循环,然后将其倒带:

$wp_query->the_post(); // Now $post is the first post (page) in the loop
echo get_post_meta( $post->ID, \'teaser-text\', true );`
$wp_query->rewind; // This rewinds the query so the loop functions normally
或者从查询中的第一篇帖子中提取ID:

echo get_post_meta( $wp_query->posts[0]->ID, \'teaser-text\', true );

结束