我把一页分成两条。
左栏是一个侧菜单,显示特定国家的内容(即:如果我在墨西哥页面,有坎昆、阿卡普尔科、墨西哥城的选项……如果我在意大利页面,有罗马、米兰、佛罗伦萨等选项)右栏是完整的内容,显示目的地的包裹信息,因此如果我在意大利页面并单击罗马,用户将在右栏中看到有关价格、航班、观光等的所有信息我必须把这两条线配起来。当我在右栏中检查目的地的内容时,左栏应与正确的菜单国家/地区匹配。
我分析它的方式是对菜单和包信息应用分类法。因此,当我为罗马制作网页时,我会应用“意大利”分类法,或者如果我为坎昆制作网页,我会将“墨西哥”分类法等应用于我拥有的许多其他目的地。
这就是我查询左侧栏/侧菜单(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
都是一样的。那么,我怎样才能让他们匹配??
非常感谢。
最合适的回答,由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(); ?>
?>