筛选并显示特定的自定义字段值

时间:2014-07-17 作者:user3301994

我正在为一家旅行社开发一个旅游网站。我试图让用户能够选择像“选择您的出发点”这样的选项,并用所选选项的所有出发点过滤循环。Ie:如果我想检查所有从芝加哥出发的航班,那么循环将只显示芝加哥出发的航班!

<?php
  $args = array(
  \'post_type\'     => \'travel_packs\',
  \'order\'         => \'ASC\',
  );
  $the_query = new WP_Query( $args );

  if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
?>

//The loop:
<a href="<?php the_permalink(); ?>">
  Destination: <?php the_field(\'destination\'); ?>
  Departing from:<?php the_field(\'departures\'); ?>
  Price:<?php the_field(\'price\'); ?>
</a>

<?php endwhile; endif; ?>
我想到了$_GET 方法,但我不确定如何将其与the_field(\'departures\');

非常感谢。

1 个回复
最合适的回答,由SO网友:wxT3APyGfkYJVK 整理而成

现在,有了新的信息,我想说:

?>
<form method="post" action="where_ever_you_want_to_point_the_user_afterwards.php">
/* The loop: */
  if (the_field(\'departures\') == \'user_departure_location\') {
   <input type="radio" name="destination" value="<?php echo the_field(\'destination\'); ?>">
   <a href="<?php the_permalink(); ?>">
     Destination: <?php the_field(\'destination\'); ?>
     Departing from:<?php the_field(\'departures\'); ?>
     Price:<?php the_field(\'price\'); ?>
   </a>
  }

/* The loop end */
?></form>
然后在where\\u ever\\u you\\u want\\u指向\\u user\\u之后。php您可以通过执行以下操作或其他您喜欢的操作来检查他所做的选择。

switch ($_POST["actual_name_of_destination_in_the_form"]) {
  case \'Dallas\':
   /* Whatever should happen next */
  break;

  /* Many more cases of course... */
} 
更新:我找到了一种更好的过滤方式。。。愚蠢的我:D

$args = array(
   \'post_type\' => \'travel_packs\',
   \'meta_key\' => \'departures\', 
   \'meta_value\' => \'USER_DEPARTURES_LOCATION\'
   \'order\' => \'ASC\',
);
$query = new WP_Query( $args );
干杯!

结束

相关推荐

为什么Apply_Filters在循环内部和外部的行为不同?

What I want: 通过创建$query = new WP_Query($args);Why: 以json格式返回特定内容,作为一种API请求,准备在另一个站点上显示What I tried first:foreach($query->posts as $post) { $post->post_content = apply_filters(\'the_content\', $post->post_content); }; 这执行了autop 和do

筛选并显示特定的自定义字段值 - 小码农CODE - 行之有效找到问题解决它

筛选并显示特定的自定义字段值

时间:2014-07-17 作者:user3301994

我正在为一家旅行社开发一个旅游网站。我试图让用户能够选择像“选择您的出发点”这样的选项,并用所选选项的所有出发点过滤循环。Ie:如果我想检查所有从芝加哥出发的航班,那么循环将只显示芝加哥出发的航班!

<?php
  $args = array(
  \'post_type\'     => \'travel_packs\',
  \'order\'         => \'ASC\',
  );
  $the_query = new WP_Query( $args );

  if ( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post();
?>

//The loop:
<a href="<?php the_permalink(); ?>">
  Destination: <?php the_field(\'destination\'); ?>
  Departing from:<?php the_field(\'departures\'); ?>
  Price:<?php the_field(\'price\'); ?>
</a>

<?php endwhile; endif; ?>
我想到了$_GET 方法,但我不确定如何将其与the_field(\'departures\');

非常感谢。

1 个回复
最合适的回答,由SO网友:wxT3APyGfkYJVK 整理而成

现在,有了新的信息,我想说:

?>
<form method="post" action="where_ever_you_want_to_point_the_user_afterwards.php">
/* The loop: */
  if (the_field(\'departures\') == \'user_departure_location\') {
   <input type="radio" name="destination" value="<?php echo the_field(\'destination\'); ?>">
   <a href="<?php the_permalink(); ?>">
     Destination: <?php the_field(\'destination\'); ?>
     Departing from:<?php the_field(\'departures\'); ?>
     Price:<?php the_field(\'price\'); ?>
   </a>
  }

/* The loop end */
?></form>
然后在where\\u ever\\u you\\u want\\u指向\\u user\\u之后。php您可以通过执行以下操作或其他您喜欢的操作来检查他所做的选择。

switch ($_POST["actual_name_of_destination_in_the_form"]) {
  case \'Dallas\':
   /* Whatever should happen next */
  break;

  /* Many more cases of course... */
} 
更新:我找到了一种更好的过滤方式。。。愚蠢的我:D

$args = array(
   \'post_type\' => \'travel_packs\',
   \'meta_key\' => \'departures\', 
   \'meta_value\' => \'USER_DEPARTURES_LOCATION\'
   \'order\' => \'ASC\',
);
$query = new WP_Query( $args );
干杯!

相关推荐

添加到数组并通过do_action/Apply_Filters传递它

作为练习,我正在使用PHPclass to add meta boxes 我在GitHub上找到了。我只是复制了代码,现在我正在玩它来理解它。其工作原理如下:包含该类的文件包含在init中。在该文件内部,但在类外部,有一个空数组$meta_boxes 已初始化之后,使用apply_filters. 我猜是apply_filters 使用而不是do_action 因为后者不返回任何内容——$meta_boxes = apply_filters( \'cmb_meta_boxes\', $meta_boxes