GET_POST_META在我的定制函数页面上不工作

时间:2019-01-30 作者:Jklyn

我已用名称保存了元密钥writer_meta_key 并希望在我的自定义函数页面上检索它。我可以在首页和单页上找到它,但在我的自定义函数页上它不起作用。这是我的密码。它只给出了标题,没有给出作者的名字。

$term       = get_queried_object();
$tax_object = get_taxonomy( $term->taxonomy );
$post_type_array = $tax_object->object_type;
$post_type  = $post_type_array[0];

$posts      = get_posts( array(
    \'post_type\' => $post_type,
    \'taxonomy\'  => $term->taxonomy,
    \'term\'      => $term->slug
) );

foreach ($posts as $post) {
    $id = get_the_ID();
    $custom_meta_writer = get_post_meta( $id, \'writer_meta_key\', true );       
    $writer = $custom_meta_writer[\'writer\'];
    echo $post->post_title; 
    echo $writer; 
}
当我回音时$id 错误显示为

Array
Array
Array
Array
我哪里弄错了??

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

WordPress使用global $post 跟踪用户正在查看的当前帖子。无论何时调用以下函数the_title()get_the_ID() 它使用的是global $post 获取数据。在您使用的代码段中get_posts() 通常不会覆盖global $post 对象,除非指定为setup_postdata( $post ).

最简单的方法是修改元数据行并使用:

$custom_meta_writer = get_post_meta( $post->ID, \'writer_meta_key\', true );

相关推荐

Gutenberg向默认块添加自定义Metabox

是否可以在古腾堡的默认块中添加自定义元框?我需要向每个块添加一个用户定义的数据属性。然后,该数据属性将打印在包装器元素的前端。我还没有找到任何关于如何做到这一点的文档。一幅图片来说明我的意思。