1
<?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を取得するにはどうすればよいですか

4

2 に答える 2

1

この関数を使用して、 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(isset($wp_query->get_queried_object()->ID))
{
    $cur_postId = $wp_query->get_queried_object()->ID;
}
于 2012-07-06T09:12:24.347 に答える
0

プラグインに貼り付けるfunctions.phpか、プラグインで使用します

add_filter('pre_get_posts','myFilter2');
function myFilter2()
{
    global $wp_query;
    $cat_name= $wp_query->query_vars['name'];
    $cat_id=get_cat_id($cat_name);
    echo $cat_id; // the category id will be available, echo is for testing only
}

URLが次のような場合http://example.com/category_name

ここに画像の説明を入力してください

于 2012-07-06T09:40:45.293 に答える