在循环外回显自定义页面的自定义字段

Echo a custom page's custom field outside the loop

我有一个带有特定自定义字段的自定义页面模板。我想在循环外显示这些自定义字段,但在同一页面内。

这个有效:

<?php echo get_post_meta( '244', 'custom_field_name', true ) ?>

但我想动态地工作,而无需输入页面的实际 ID。

如何在回显中调用页面ID?

试试这个:

<?php

    global $wp_query;

    $postid = $wp_query->post->ID;

    echo get_post_meta($postid, 'Your-Custom-Field', true);

    wp_reset_query();

    ?>

如果此调用在循环中,请将 id 替换为函数 get_the_ID,此函数会检索 WordPress 循环中当前项目的 ID。

<?php echo get_post_meta( get_the_ID(), 'custom_field_name', true ) ?>

参见:https://developer.wordpress.org/reference/functions/get_the_ID/


如果此调用是在单个页面中,请将 id 替换为对象项 $post->ID

$post = get_post();
<?php echo get_post_meta( $post->ID, 'custom_field_name', true ) ?>

参见:https://codex.wordpress.org/Class_Reference/WP_Post


此外,您可以通过全局变量 $post.

获取对 post 的访问权限
$post = get_post();
<?php echo get_post_meta( $post->ID, 'custom_field_name', true ) ?>

参见:https://codex.wordpress.org/Global_Variables