打开SEO URL时获取类别ID

时间:2012-07-06 作者:Thomas k

<?php
/*
Plugin Name: Members
*/

   function myFilter2($query) 
    {

        if ($query->is_category)
        {
            $currently_listing_categories = $query->query_vars[\'category__in\'];             
            print_r($currently_listing_categories);
        }

    }

    add_filter(\'pre_get_posts\',\'myFilter2\');
?>
当url不利于SEO时,此插件显示类别ID

http://domain.com/wplab/wpla4/?cat=4

. 但是当我打开SEO时

http://domain.com/wplab/wpla4/category/members/

数组为空

如何使用SEO友好的URL获取类别id

2 个回复
SO网友:Rikesh

使用此功能可获取wp中的当前类别:

function getCurrentCatID(){

 global $wp_query;
 if(is_category() || is_single()){
  $cat_ID = get_query_var(\'cat\');
 }
 return $cat_ID;
}

echo getCurrentCatID();
刚刚为你找到的,试试这个,

if(isset($wp_query->get_queried_object()->cat_ID))
{
    $cur_catId = $wp_query->get_queried_object()->cat_ID;
}
if(issset($wp_query->get_queried_object()->ID))
{
    $cur_postId = $wp_query->get_queried_object()->ID;
}

SO网友:Jesse

function myFilter2($query) 
    {

        if ($query->is_category())
        {
            $currently_listing_categories = $query->get(\'cat\');             
            print_r($currently_listing_categories);
        }

    }

    add_filter(\'pre_get_posts\',\'myFilter2\');
您应该使用

1.$query->is_category() 而不是访问is_category 直接变量。

2.$query->get() 获取查询值。

只有一个提示,您可以始终使用下面的代码来输出内容。

echo \'<pre>\';
print_r($query);
exit;

结束