WordPress – Sauvegarder les catégories parentes d’une catégorie choisie
Il peut arriver que lorsque vous sauvegarder votre post que vous vouliez que celui-ci ne soit pas uniquement considéré dans la catégorie choisie mais aussi la parent de celle-ci.
Par exemple, vous avez les catégories suivantes:
Publicités
– Auto
– – BMW
– – Audi
En sélectionnant Audi vous voulez aussi automatiquement avoir la catégorie Auto, pour ce faire il suffit d’utiliser le hook save_post
/**** Add automatic parent category ******/
add_action("save_post","cf_save_parent_category");
function cf_save_parent_category($postid){
// get parent post id
$parent_post_id = get_post($postid)->post_parent;
$parent_post_id = ($parent_post_id != 0) ? $parent_post_id : $postid;
$current_categories = wp_get_post_categories($parent_post_id);
foreach ($current_categories as $key => $category_id) {
$ancestor_category = get_ancestors($category_id, 'category');
foreach($ancestor_category as $ancestor_category_id){
$current_categories[]=$ancestor_category_id;
}
}
wp_set_post_categories( $parent_post_id, $current_categories ) ;
$current_categories = wp_get_post_categories($parent_post_id);
}
Publicités