无法检索_Content()和_Author()-两者都返回空字符串

时间:2016-06-08 作者:Greeso

我正在创建以下代码,以在我的单曲标题中显示打开的图形元数据。php页面

add_action(\'wp_head\', \'mycode_add_og_meta_tags\', 5);

function mycode_add_og_meta_tags () {

?>
    <meta property="og:type" content="article"/>

    <meta property="og:title" content="<?php the_title(); echo \' (\'; _e(\'Source:\', \'mydomain\'); the_author(); echo\')\'; ?>"/>

    <meta property="og:description" content="<?php echo strip_tags(get_the_content(), \'<p>\'); ?>"/>

    <?php if(has_post_thumbnail()) : ?>
    <meta property="og:image" content="<?php the_post_thumbnail_url(\'single\') ?>"/>
    <?php endif; ?>

<?php
}
然而,两者the_author()get_the_content() 不要返回任何数据;然而the_title()the_post_thumbnail_url() 一定要返回数据。

此外,在“身体”的单一。php文件,我能够检索上述所有信息。

我怀疑这与处于循环内部有关,所以我的问题是:

如果与循环无关,如何检索缺少的上述值?

如果我的方法不正确,因为我在循环外检索信息,那么:

标题和缩略图是怎么工作的?

如何在进入循环之前设置开放图元数据(og)?

谢谢。

1 个回复
最合适的回答,由SO网友:Gareth Gillman 整理而成

获取\\u内容和\\u作者必须处于循环中,因此需要使用其他函数来获取所需的内容

global $wp_query;
$post = $wp_query->post;
$page_id = $post->ID; // page ID
$page_object = get_page( $page_id ); // page stuff
$author_id = $post->post_author; // author ID

$page_content = $page_object->post_content;
$author_name = get_the_author_meta( \'display_name\', $author_id);