Access our premium support and let us know your problems, we will help you solve them.

0
No products in the cart.
  • This topic is empty.
Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #9529
    blankronniet
    Participant

    Looking to pull the category ID of a specific page in WordPress that is listing all posts using that specific category. Tried the below but not working. I am able to get the category name using single_term_title.

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

    $category is displaying “Entertainment” for example. But I also need the ID of “Entertainment”. How would I go about this?

    #9541
    blankash108
    Participant

    You can try using get_the_category():

    $categories = get_the_category();
    $category_id = $categories[0]->cat_ID;
    
    #9542
    blankram-mehar-deswal
    Participant

    If it is a category page,you can get id of current category by:

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

    If you want to get category id of any particular category on any page, try using :

    $category_id = get_cat_ID('Category Name');
    
    #9533
    blankbill
    Participant

    I found this question whilst looking for exactly what you asked. Unfortunately you have accepted an incorrect answer. For the sake of other people who are trying to achieve what we were trying to achieve, I thought I’d post the correct answer.

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

    As you said single_term_title("", false); was correctly returning the category title, I’m not sure why you would have had troubles with your code; but the above code works flawlessly for me.

    #9540
    blankfred-k
    Participant

    The oldest but fastest way you can use is:

    $cat_id = get_query_var('cat');
    
    #9538
    blankjorge-orpinel-prez
    Participant

    I think some of the above may work but using the get_the_category function seems tricky and may give unexpected results.

    I think the most direct and simple way to access the cat ID in a category page is:

    $wp_query->query_vars['cat']
    

    Cheers

    #9539
    blankshaffe
    Participant

    I use the get_queried_object function to get the current category on a category.php template page.

    $current_category = get_queried_object();
    

    Jordan Eldredge is right, get_the_category is not suitable here.

    #9534
    blankbheru-lal-lohar
    Participant

    Alternative –

     $catID = the_category_ID($echo=false);
    

    EDIT: Above function is deprecated please use get_the_category()

    #9535
    blanknh-labs
    Participant

    I used this for breadcrums in the category template page:

    $cat_obj = $wp_query->get_queried_object();
    $thiscat_id = $cat_obj->term_id;
    $thiscat = get_category($thiscat_id);
    $parentcat = get_category($thiscat->parent);
    
    #9530
    blankabhijit-patel
    Participant
    $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;
      }
    }
    
    #9531
    blankrobert-sinclair
    Participant

    Tried above for solutions to find cat ID of a post, but nothing worked, used the following instead:

    $obj = get_queried_object();
    $c_id = wp_get_post_categories($obj->ID);
    
    #9536
    blankhonk31
    Participant

    if you need the category ID, you would get it via get_query_var, that is capable of retrieving all publicly queryble variables.

    $category_id = get_query_var('cat');
    

    here is an example to get the category name

    $category_name = get_query_var('category_name');
    

    and of course the all mighty get_queried_object

    $queried_object = get_queried_object();
    

    that is returning the complete taxonomy term object (when used on a taxonomy-archive page..)

    #9532
    blankhemant-adhikari
    Participant

    Here’s an efficient method to get category meta data, along with HTML if you want to print it out on the front-end:

        <?php
        
        function custom_get_categories() {
          $categories = get_the_category();
          $uncategorised_id = get_cat_ID('Uncategorized');
          $custom_category_link = '';
        
          foreach ($categories as $category) {
            if($category->category_parent == $uncategorised_id || $category->cat_ID == $uncategorised_id) {
              continue;
            }
            
            $custom_category_link = get_category_link($category->cat_ID); ?>
        
            <a href ="<?php echo $custom_category_link ?>"> 
        <?php echo "\n\nCategory ID: " . $category->cat_ID . "\nCategory Name" . $category->name;  ?> </a>
        
            <?php
          }``
        }
        
         ?>
    
    #9537
    blanksangeet kukreja
    Participant

    I tested all these answers and this is the only one which works on all archive page types including posts page.

    $category_id = get_the_category( get_the_ID());
    $cat_id      = get_category($category_id[0]->term_id);
    
Viewing 14 posts - 1 through 14 (of 14 total)
  • You must be logged in to reply to this topic.