WordPress从URL获取类别ID

时间:2012-10-09 11:03:29

标签: wordpress categories posts

我很难找到解决方案,有人知道如何解决这个问题:

我在一个以上的类别中有一个WordPress帖子,但只有一个是永久链接类别。我需要获取该固定链接类别的ID(我需要此信息,因此我可以通过自定义查询从固定链接类别中获取最新的帖子)。

url看起来像http://domain.com/ 类别名称 / post-title

我需要“类别名称”ID。

7 个答案:

答案 0 :(得分:5)

一个好用的是:

<?php $page_object = get_queried_object(); ?>
<h1><?php echo $page_object->cat_name; ?></h1>

答案 1 :(得分:1)

我的回答是:

function get_category_by_url($url) {
    foreach( (get_the_category()) as $category) {
        if ( get_category_link($category->cat_ID) == $url )
            return $category->slug;
    }
    return false;
}

答案 2 :(得分:0)

如果帖子属于多个类别,如果您正在查看第二个类别的帖子,该怎么办?在这种情况下,检索固定链接类别的类别ID可能没有用,因为您需要使用当前类别的相关帖子。

为此,您可以通过传递类别名称来获取ID,如下所示:

<?php get_cat_ID($cat_name)?>

这有帮助吗?

答案 3 :(得分:0)

Wordpress选择最旧的类别作为永久链接类别。除非你使用一些插件,否则无法改变这种行为。如果您选择使用插件,请从插件设置中获取类别ID。

您可以列出此帖子的所有类别,并选择最相关的类别。 在循环中使用以下代码:

foreach((get_the_category()) as $category) 
{
   if ( $category->cat_ID == 1000 )
      ; // DO SOMETHING
}

答案 4 :(得分:0)

$category = end(get_the_category());
$current = $category->cat_ID;
echo 'id='.$current . ' - name=' . $category->cat_name;

答案 5 :(得分:0)

global $wp;
  $current_url = home_url( add_query_arg( array(), $wp->request ) ); get url

$url_array = explode('/',$current_url); 
$retVal = !empty($url_array[5]) ? $url_array[5] : $url_array[4] ;
$idObj = get_category_by_slug($retVal); 
echo $idObj->name

答案 6 :(得分:-1)

您可以使用

$url_array = explode('/',get_permalink())

将返回一个数组。如果您遍历该数组,您将在那里找到您的类别。我很确定它会在所有网址的同一位置。