Wordpress从单个帖子,多个类别中获取当前类别

时间:2016-01-30 22:50:35

标签: php wordpress custom-post-type custom-taxonomy

我有自定义帖子类型的家庭计划和自定义分类社区

多个不同社区中出现相同的家庭计划

固定链接已经设置,现在我正在尝试找到当前 社区,我正在查看主页计划

由于家庭计划出现在多个社区中,以下示例链接会将您带到相同的 家庭计划按预期:

  • domain.com/community-name-1/plan-name
  • domain.com/community-name-2/plan-name
  • domain.com/community-name-3/plan-name

为了显示基于社区的相关信息,我正在尝试找到一种方法来确定当前 社区

在我的single-home-plans.php文件中,我打印了get_query_object();和get_the_terms();但我没有找到任何有用的东西。

可能的解决方法是传递$ _GET值,但此时这是绝对的最后手段。

3 个答案:

答案 0 :(得分:0)

当您在单页上时,没有当前分类法。您只能检查哪个分类用户转到此页面。您可以通过检查$ _SERVER ['HTTP_REFERER']来执行此操作。

答案 1 :(得分:0)

假设您的网址与您提供的网址一样简单,可能会这样做,

// Get the Current  URL path
$url =  "{$_SERVER['REQUEST_URI']}";

// Convert URL path string to array
$e = explode('/', $url ); // You can dump this to verify which is the taxonomy slug

// Get all taxonomy slug assigned on this post
$taxonomy = wp_get_post_terms( get_the_ID(), 'your_taxonomy');
$tax_names = '';
foreach( $taxonomy as $tax ) {
    $tax_names .= ' '. $tax->slug;
}
// check if 2nd array which is the current taxonomy exist on list of taxonomy assigned to post
if( isset( $e[1] ) && strpos($tax_names, $e[1]) !== false ) {
    // Get Term Name by slug
    $term = get_term_by('slug', $e[1], 'your_taxonomy');
    _e( $term->name);
} else {
    _e($e[1]. ' is not a valid taxonomy for this post');
}

答案 2 :(得分:0)

如果分类中的query_var设置为true,您可以使用$wp_query(全局)

来检测当前正在查看的类别

$wp_query->query_vars['the_taxonomy_name'];

运行var_dump($wp_query->query_vars);以查看所有查询信息的完整数组。

<?php global $wp_query;
$home_plan_community = $wp_query->query_vars['community'];
echo $home_plan_community; ?>