匹配两个分类以显示特定内容

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

我把一页分成两条。

左栏是一个侧菜单,显示特定国家的内容(即:如果我在墨西哥页面,有坎昆、阿卡普尔科、墨西哥城的选项……如果我在意大利页面,有罗马、米兰、佛罗伦萨等选项)

我分析它的方式是对菜单和包信息应用分类法。因此,当我为罗马制作网页时,我会应用“意大利”分类法,或者如果我为坎昆制作网页,我会将“墨西哥”分类法等应用于我拥有的许多其他目的地。

这就是我查询左侧栏/侧菜单(content sidemenu.php)的方式

<?php
  $args = array(
      \'post_type\'     => \'side_menu\',
      \'posts_per_page\'=> 1,
      \'tax_query\'     => array(
        \'relation\'    => \'AND\',
        array(
          \'taxonomy\' => \'countries\',
          \'field\'    => \'slug\',
          \'terms\'    => array( **??????** )
          )
        )
  );
  $the_menu = new WP_Query( $args );
  if ( have_posts() ) : while ( $the_menu->have_posts() ) : $the_menu->the_post(); ?>
?>
右栏稍有相似(只是post_type 具有不同的值,具体取决于页面),但tax_query 都是一样的。那么,我怎样才能让他们匹配??

非常感谢。

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

你会想看看get_the_terms().

<?php
  // You need to define the post id from the post you are outputting in the right bar so that the left bar knows how to match up the terms
  $country = get_the_terms( $post->id, \'countries\' )

  $args = array(
      \'post_type\'     => \'side_menu\',
      \'posts_per_page\'=> 1,
      \'tax_query\'     => array(
        // \'relation\'    => \'AND\', /* I don\'t think you need this unless it has another purpose */
        array(
          \'taxonomy\' => \'countries\',
          // This only works since you are selecting just one term per post
          // Works by retrieving the first and only term id from the post in the right bar
          \'terms\'    => array_shift(array_keys($country))
          )
        )
  );
  $the_menu = new WP_Query( $args );
  if ( have_posts() ) : while ( $the_menu->have_posts() ) : $the_menu->the_post(); ?>
?>

结束

相关推荐

在编辑帖子页面中,如何使用jQuery修改状态选择列表?

这是我的JS:jQuery(\'#post_status option[value=\"draft\"]\').text(\'Approve\'); 我只是试图修改编辑帖子页面中状态选择表单元素中option元素内的文本。由于某种原因,它不起作用。我正在使用“admin\\u footer”操作添加JS。也许还有别的办法?我也试过:jQuery(\'#post_status option[value=\"changes-required\"]\').prop(\'selected\', true