Support » Fixing WordPress » get_the_category() returns category when page is in no category

  • I am calling get_the_category() on a page that is not in any category, and it returns the category with term_id=1 . It should return an empty array or false or something other than an incorrect category. This seems like a bug.

    see below for excerpts from print_r($wp_query)
    this all takes place inside of a loop on a page, which seems to pull the correct page id and other attributes inside of $wp_query.

    print_r(get_the_category()) returns the following

    [0] => stdClass Object
    [term_id] => 1
    [name] => …
    [slug] => …
    [term_group] => 0
    [term_taxonomy_id] => 1
    [taxonomy] => category
    [description] => …
    [parent] => 3
    [count] => 41
    [object_id] => 4671
    [cat_ID] => 1
    [category_count] => 41

    print_r($wp_query) returns some of this …

    WP_Query Object
    [query_vars] => Array
    [page] => 0
    [pagename] => terms

    [category_name] =>

    [category__in] => Array

    [is_page] => 1

Viewing 2 replies - 1 through 2 (of 2 total)
  • the function should be called inside the loop;

    what is the context in your template?

    what is the purpose to call get_the_category() for a page?

    The function is called inside the loop, as I state above.

    I am calling get_the_category() in the header to set a javascript variable which is passed to an ad server for targeting based on category. This code is executed on all pages of all type on the site.

    I can add a conditional to make this an exception, but I still think calling get_the_category() should return false or empty if there is no category for some reason, and certainly not return term_id 1 when it find an unexpected situation.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘get_the_category() returns category when page is in no category’ is closed to new replies.