代码之家  ›  专栏  ›  技术社区  ›  JakeSays

使用自定义(ACF)字段创建自定义查询以在Wordpress中显示关系数据

  •  0
  • JakeSays  · 技术社区  · 6 年前

    我正在尝试创建一个自定义查询,使用Custom(ACF)字段在Wordpress中显示关系数据。我什么也没看到。我也没有任何错误。

    我有两种自定义的post类型,“town”&“事件”

    “event”post类型有一个名为“town”的自定义关系字段(使用ACF),我可以在其中将事件与特定的town关联起来。

    <?php
     get_header();
     ?>
     <br>
    
     /* display the current town, title, feature image, and description */
    <?php
     while (have_posts()){
      the_post();
      $title = get_the_title(); /* use this var in custom query below */
      ?><h2><?php echo $title ?> </H2>
      <hr><?php
      the_post_thumbnail('large');
      the_content();
      }?>
      <br>
      <?php 
    
     /*create a custom query to fetch all the events for that town */
     $posts = get_posts(array(
      'paged'=> get_query_var('paged',25),
      'posts_per_page' => 25,
      'post_type' => 'event',
      'orderby'=> 'title',
      'order'=> 'ASC',
      'meta_key'=> 'town',
      'meta_query'=> array(
             array(
          'key'=> 'town',
          'compare'=> '=',
          'value'=> $title
      ));
    ));
    
     /* display custom query results */
    
    if( $posts ): ?>
        <ul>
        <?php foreach( $posts as $post ):
            setup_postdata( $post );
            ?>
            <li>
                <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            </li>
        <?php endforeach; ?>
        </ul>
        <?php wp_reset_postdata(); ?>
    <?php endif; 
    
     wp_reset_postdata();
     get_footer();
    ?>
    

    我也尝试过使用:

     $eventQuery = new WP_Query(array(
     'paged'=> get_query_var('paged',25),
     'posts_per_page' => 25,
     'post_type' => 'event',
     'orderby'=> 'title',
     'order'=> 'ASC',
    
     'meta_key'=> 'town',
     'meta_query'=> array(
            array(
         'key'=> 'town',
         'compare'=> '=',
         'value'=> $title
    ))
    ));
    
    while ($eventQuery->have_posts()){
    $eventQuery->the_post();
    $eventQuery->the_title();
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   johnnyd23    6 年前

    $eventQuery = new WP_Query( array(
        'posts_per_page' => 25,
        'post_type'      => 'event',
        'orderby'        => 'title',
        'order'          => 'ASC',
        'meta_query'     => array(
            array(
                'key'     => 'town', 
                'value'   => '"' . get_the_ID() . '"',
                'compare' => 'LIKE'
            )
        ),
    ));