我很难找到解决方案,有人知道如何解决这个问题:
我在一个以上的类别中有一个WordPress帖子,但只有一个是永久链接类别。我需要获取该固定链接类别的ID(我需要此信息,因此我可以通过自定义查询从固定链接类别中获取最新的帖子)。
url看起来像http://domain.com/ 类别名称 / post-title
我需要“类别名称”ID。
答案 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())
将返回一个数组。如果您遍历该数组,您将在那里找到您的类别。我很确定它会在所有网址的同一位置。