Pobierz aktualny identyfikator kategorii aktywnej strony

Szukam identyfikatora kategorii określonej strony w WordPress, który wymienia wszystkie posty za pomocą tej konkretnej kategorii. Próbowałem poniżej, ale nie działa. Jestem w stanie uzyskać nazwę kategorii używając single_term_title.

$category = single_term_title("", false);
$catid = get_cat_ID( $category );

$category wyświetla na przykład "rozrywkę". Ale potrzebuję też identyfikatora "Rozrywka". Jak mam to zrobić?

Author: RonnieT, 2012-01-12

9 answers

Możesz spróbować użyć get_the_category():

$categories = get_the_category();
$category_id = $categories[0]->cat_ID;
 50
Author: ash108,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-24 13:47:14

Jeśli jest to strona kategorii, możesz uzyskać id bieżącej kategorii przez:

$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;

Jeśli chcesz uzyskać identyfikator kategorii na dowolnej stronie, spróbuj użyć :

$category_id = get_cat_ID('Category Name');
 167
Author: Ram Mehar Deswal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-04 15:25:26

Najstarszy, ale najszybszy sposób, jaki możesz użyć to:

$cat_id = get_query_var('cat');
 27
Author: Fred K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-18 08:05:05

Używam funkcji get_queried_object, aby uzyskać bieżącą kategorię w kategorii.strona z szablonem php.

$current_category = get_queried_object();

Jordan Eldredge ma rację, get_the_category nie jest tutaj odpowiednie.

 16
Author: Shaffe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-10 11:00:28

Myślę, że niektóre z powyższych mogą działać, ale korzystanie z funkcji get_the_category wydaje się trudne i może dać nieoczekiwane rezultaty.

Myślę, że najbardziej bezpośrednim i prostym sposobem uzyskania dostępu do identyfikatora kota na stronie kategorii jest:

$wp_query->query_vars['cat']

Cheers

 1
Author: Jorge Orpinel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-04 15:25:35

Użyłem tego na stronie szablonu kategorii:

$cat_obj = $wp_query->get_queried_object();
$thiscat_id = $cat_obj->term_id;
$thiscat = get_category($thiscat_id);
$parentcat = get_category($thiscat->parent);
 1
Author: guido _nhcol.com.br_,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 17:02:49

Alternatywa-

 $catID = the_category_ID($echo=false);

EDIT: powyższa funkcja jest przestarzała Proszę użyć get_the_category()

 1
Author: Bheru Lal Lohar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-19 06:38:05

Znalazłem to pytanie, szukając dokładnie tego, o co pytałeś. Niestety zaakceptowałeś błędną odpowiedź. Ze względu na innych ludzi, którzy próbują osiągnąć to, co my staraliśmy się osiągnąć, pomyślałem, że opublikuję poprawną odpowiedź.

$cur_cat = get_cat_ID( single_cat_title("",false) );

Jak powiedziałeś single_term_title("", false); poprawnie zwracał tytuł kategorii, nie jestem pewien, dlaczego miałbyś mieć problemy z kodem; ale powyższy kod działa dla mnie bezbłędnie.

 0
Author: Bill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-21 14:16:47
$cats = wp_get_post_terms( $post->ID, 'product_cat' );
foreach($cats as $cat){
/*check for category having parent or not except category id=1 which is wordpress default category (Uncategorized)*/
  if($cat->parent != '0' && $cat->term_id != 1){
    echo '<h2 class="link"><a href="'.get_category_link($cat->term_id ).'">'.$cat->name.'</a></h2>';
    break;
  }
}
 0
Author: Abhijit Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-10 04:43:21