【问题标题】:Only loop through posts that have filled custom field仅循环浏览已填写自定义字段的帖子
【发布时间】:2019-08-01 22:35:27
【问题描述】:

我有一个包含多个自定义字段的自定义帖子类型“团队”。当帖子具有为该自定义字段设置的图像时,我想制作一个短代码来显示字段“team_foto_met_koptelefoon”的值。

在每次页面加载时,都会加载来自不同人的另一张图片,但当该人没有图片时,它不会显示任何内容。

我尝试编写一个查询来遍历所有帖子,但它也会遍历没有设置图像的团队成员。

function dfib_team_spotify_shortcode( $atts ) {
    ob_start();
    $query = new WP_Query( array(
        'post_type' => 'team',
        'posts_per_page' => 1,
        'order' => 'ASC',
        'orderby' => 'rand',
    ) );
    if ( $query->have_posts() ) { ?>
            <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                <?php if( get_field('team_foto_met_koptelefoon') ): ?>
                    <img class="team__spotify__img" src="<?php the_field('team_foto_met_koptelefoon'); ?>">
                <?php endif; ?>
            <?php endwhile;
            wp_reset_postdata(); ?>

    <?php $myvariable = ob_get_clean();
    return $myvariable;
    }
}

add_shortcode( 'team__spotify', 'dfib_team_spotify_shortcode' );

我想创建一个循环来检查哪个团队成员在“team_foto_met_koptelefoon”中设置了图像,并且只显示有图像的成员,这样我就不会出现空白。

【问题讨论】:

    标签: php wordpress advanced-custom-fields


    【解决方案1】:

    我刚刚通过添加几行自己找到了解决方案:

    <?php
    function dfib_team_spotify_shortcode( $atts ) {
        ob_start();
    
        $query = new WP_Query( array(
            'post_type'         => 'team',
            'posts_per_page'    => 1,
            'order'             => 'ASC',
            'meta_key'          => 'team_foto_met_koptelefoon', //ACF field name
            'meta_value'        => ' ',
            'meta_compare'      => '!=',
            'orderby'           => 'rand',
        ) );
    
        if ( $query->have_posts() ) { ?>
            <?php while ( $query->have_posts() ) : $query->the_post(); ?>
                <?php if( get_field('team_foto_met_koptelefoon') ): ?>
                    <img class="team__spotify__img" src="<?php the_field('team_foto_met_koptelefoon'); ?>">
                <?php endif; ?>
            <?php endwhile;
    
            wp_reset_postdata();
    
            $myvariable = ob_get_clean();
            return $myvariable;
         }
    }
    add_shortcode( 'team__spotify', 'dfib_team_spotify_shortcode' );
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 2014-11-18
      • 1970-01-01
      相关资源
      最近更新 更多