wp_get_object_terms returns only Uncategorized on first publish
Question
I would like to get all assigned categories of a post once it’s published with the save_post
hook:
add_action( 'save_post', function( $post_id, $post, $update = null ) {
if ( 'publish' == $post->post_status ) {;
$categories = wp_get_object_terms( $post_id, 'category' );
...
}
},10 ,3 );
When I save the post for the first time $categories
contain always the "Uncategorized" category.
Once I update the post (without changing any taxonomy) it contains the selected categories.
$categories
on first save:
Array(
[0] => WP_Term Object
(
[term_id] => 1
[name] => Uncategorized
[slug] => uncategorized
[term_group] => 0
[term_taxonomy_id] => 1
[taxonomy] => category
[description] =>
[parent] => 0
[count] => 2
[filter] => raw
)
)
$categories
on post update:
Array (
[0] => WP_Term Object
(
[term_id] => 2
[name] => My Category
[slug] => my-category
[term_group] => 0
[term_taxonomy_id] => 2
[taxonomy] => category
[description] =>
[parent] => 0
[count] => 1
[filter] => raw
)
)
I’m sure this is not the expected behavior but I can repeat this with every version of the block editor. WP 4.9 works as expected and shows all selected categories even on the first publish.
0
2 years
2020-12-29T09:10:21-05:00
2020-12-29T09:10:21-05:00 0 Answers
3 views
0
Leave an answer