web-dev-qa-db-fra.com

Comment limiter la profondeur des pages hiérarchiques (pour les types de publication personnalisés) aux enfants uniquement

Existe-t-il un moyen de limiter la création de pages (type de publication personnalisé) à un {profondeur spécifique} _ - par exemple. niveau 1 (où 0 = parent, 1 = enfant, 2 = petit-enfant, etc.)?

Par exemple, créons une page de recette "Été" (type de publication personnalisée: Recette) avec un slug "/ été". Créons maintenant une page "Pie" (un enfant de "Summer") avec un slug "/ summer/pie". Je veux empêcher l'utilisateur de créer une page qui est un enfant de "Pie" ou de toute autre sous-page.

  • example.com/summer -> BON
  • example.com/summer/pie -> BON
  • example.com/summer/pie/Apple -> BAD
  • example.com/summer/pie/blackberry -> BAD

Merci.

6
41st
function my_test($a) {
  $a['depth'] = 1;
  return $a;
}
add_action('page_attributes_dropdown_pages_args','my_test');

Mettez cela dans le fichier function.php ou dans un plugin.

9
s_ha_dum

Le filtre suivant affiche uniquement les éléments de type publication personnalisés de niveau supérieur dans les listes déroulantes d'attributs de page (dans l'écran d'édition principal et dans l'édition rapide). Remplacez le 'my_custom_post_type' par votre nom de type d'article personnalisé.

function my_test($args) {
    global $post_type_object;

    if ( $post_type_object->name == 'my_custom_post_type') {
        $args['depth'] = 1;
    }
    return $args;
}
add_filter('page_attributes_dropdown_pages_args','my_test');
add_filter('quick_edit_dropdown_pages_args', 'my_test');
6
groucho75