从WordPress高级自定义字段中删除前端依赖项

时间:2016-01-21 06:24:11

标签: php wordpress advanced-custom-fields

我试图使我的主题完全独立于ACF get_fieldthe_field(因此,如果插件被禁用,网站将不会中断)。我有一个通过自定义字段'slider_image'加载的图片作为内联background-image。我需要调用图像的URL。是否可以将其加载到内联的html中?这是工作代码(与ACF' s the_field):

    <!-- Hero Image -->
    <section class="hero" style="background: url('<?php the_field('slider_image'); ?>') no-repeat center center; background-size: cover;">
    </section>
    <!-- End Hero Image -->

如果禁用该插件,如何使用get_post_meta重写此语句?

我试过了:

<section class="hero" style="background: url('<?php echo get_post_meta( get_the_ID(), 'slider_image', true ); ?>') no-repeat center center; background-size: cover;">

返回:

<section class="hero" style="background: url('98') no-repeat center center; background-size: cover;">

1 个答案:

答案 0 :(得分:1)

这必须是附加图像的帖子的ID。要获取当前图像,您必须使用某些嵌入式WP功能,如wp_get_attachment_image(如果要打印图像标记)或wp_get_attachment_image_src(如果需要图像属性)

例如,在您的情况下,当您只想要url图片时,可以执行以下操作:

$img_id = get_post_meta( get_the_ID(), 'slider_image', true );
$image_attr = wp_get_attachment_image_src( $img_id, 'large' ); //returns false or array
if ( $image_attr ) {
    $img_url = $image_attr[0]; ?>
    <section class="hero" style="background: url('<?php echo $img_url; ?>') no-repeat center center; background-size: cover;">
<?php } ?>