在父页面上,我从子页面获得了自定义字段值的网格。所有文本字段都工作正常,但我对文件URL字段有问题:它返回的不是URL,而是附件ID。
下面是我用来显示所有字段的代码:
<?php
//get children of page 4 and display with custom fields
$args=array(
\'post_parent\' => 4,
\'post_type\' => \'page\',
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
精简版,无任何格式:
<?php $meta_one = get_post_meta($post->ID, \'doors\', true); ?>
<?php echo $meta_one; ?>
ACF的开发人员说我应该改用get\\u字段,但如果我用get\\u字段替换get\\u post\\u meta,它甚至不会返回ID。
我还尝试添加如下URL参数:<?php echo $meta_one[\'url\']; ?>
没有变化。
最合适的回答,由SO网友:montrealist 整理而成
以下是ACF如何保存附件数据:
meta_id post_id meta_key meta_value
971 931 doors 666
972 931 _doors field_25
如您所见,如果您使用
get_post_meta
它将只能返回您的ID。因为没有使用
get_field
您需要自己完成获取附件元数据的额外步骤:
$meta_one = get_post_meta($post->ID, \'doors\', true);
$meta_url = wp_get_attachment_url( $meta_one );
echo $meta_url;