如果没有使用高级自定义域,我如何显示帖子标题?

时间:2018-04-18 作者:Andy

我有一个用于显示自定义帖子类型的存档页面。

在显示自定义帖子类型的WP\\U查询中,我想显示一个ACF(高级自定义字段),或者,如果用户没有填写ACF,则应该显示标题。

我试过了,ACF字段显示正常,但如果没有填写,则不会显示标题,只显示帖子的内容。

以下是我的代码(仅针对标题部分):

<?php $loop = new WP_Query( array( \'post_type\' => \'project\', \'posts_per_page\' => -1, \'orderby\' => \'menu_order\' ) ); ?>

<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <div class="project col-md-4">
    <div class="col-xs-12 short-testimonial">

        <?php if(get_field(\'short_testimonial\')): ?>

        <?php the_field(\'short_testimonial\'); ?>

        <?php else: ?>

        <?php echo the_title(); ?>

        <?php endif; ?>

    </div>

2 个回复
SO网友:Mat

如果有疑问,请首先检查文档:https://www.advancedcustomfields.com/resources/get_field/

Check if value exists

此示例显示如何检查字段是否存在值。

$value = get_field( \'text_field\' );

if ( $value ) {
    echo $value;
} else {
    echo \'empty\';
}
因此,对于您的情况,您需要使用:

<?php

$short_testimonial = get_field( \'short_testimonial\' );

if ( $short_testimonial ) {
    echo $short_testimonial;
} else {
    the_title();
}

?>
此外,您应该注意,正如其他人所提到的,您不需要回应the_title() 正如它自身的回声。。。

SO网友:danrodrigues

您应该尝试从“the\\u title()”中删除“echo”。

这应该行得通

<div class="project col-md-4">
     <div class="col-xs-12 short-testimonial">
          <?php 
               if( get_field( \'short_testimonial\' ) ): 
               the_field( \'short_testimonial\' );
               else:
               the_title();
               endif;
          ?>    
     </div>
</div>
您还可以查看官方文档here.

您会注意到\\u标题已经displays it by default.

<?php the_title( $before, $after, $echo ); ?>

结束
如果没有使用高级自定义域,我如何显示帖子标题? - 小码农CODE - 行之有效找到问题解决它

如果没有使用高级自定义域,我如何显示帖子标题?

时间:2018-04-18 作者:Andy

我有一个用于显示自定义帖子类型的存档页面。

在显示自定义帖子类型的WP\\U查询中,我想显示一个ACF(高级自定义字段),或者,如果用户没有填写ACF,则应该显示标题。

我试过了,ACF字段显示正常,但如果没有填写,则不会显示标题,只显示帖子的内容。

以下是我的代码(仅针对标题部分):

<?php $loop = new WP_Query( array( \'post_type\' => \'project\', \'posts_per_page\' => -1, \'orderby\' => \'menu_order\' ) ); ?>

<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
    <div class="project col-md-4">
    <div class="col-xs-12 short-testimonial">

        <?php if(get_field(\'short_testimonial\')): ?>

        <?php the_field(\'short_testimonial\'); ?>

        <?php else: ?>

        <?php echo the_title(); ?>

        <?php endif; ?>

    </div>

2 个回复
SO网友:Mat

如果有疑问,请首先检查文档:https://www.advancedcustomfields.com/resources/get_field/

Check if value exists

此示例显示如何检查字段是否存在值。

$value = get_field( \'text_field\' );

if ( $value ) {
    echo $value;
} else {
    echo \'empty\';
}
因此,对于您的情况,您需要使用:

<?php

$short_testimonial = get_field( \'short_testimonial\' );

if ( $short_testimonial ) {
    echo $short_testimonial;
} else {
    the_title();
}

?>
此外,您应该注意,正如其他人所提到的,您不需要回应the_title() 正如它自身的回声。。。

SO网友:danrodrigues

您应该尝试从“the\\u title()”中删除“echo”。

这应该行得通

<div class="project col-md-4">
     <div class="col-xs-12 short-testimonial">
          <?php 
               if( get_field( \'short_testimonial\' ) ): 
               the_field( \'short_testimonial\' );
               else:
               the_title();
               endif;
          ?>    
     </div>
</div>
您还可以查看官方文档here.

您会注意到\\u标题已经displays it by default.

<?php the_title( $before, $after, $echo ); ?>