web-dev-qa-db-fra.com

Supprimer les paramètres de permalien dans la publication pour les utilisateurs

J'utilise le code suivant pour supprimer les paramètres de permalien dans un message. Cela fonctionne jusqu'à ce que l'utilisateur appuie sur le bouton de publication. Ensuite, les paramètres de permalien réapparaissent.

add_action('admin_head', 'wpds_custom_admin_post_css');
function wpds_custom_admin_post_css() {

    global $post_type;

    if ($post_type == 'post_type') {
        echo "<style>#edit-slug-box {display:none;}</style>";
    }
}
1
Arnolddew

Les types de publication par défaut sont publication, page, pièce jointe, révision et nav_menu_item.

Remplacez 'post_type' par 'post':

add_action('admin_head', 'wpds_custom_admin_post_css');
function wpds_custom_admin_post_css() {

    global $post_type;

    if ($post_type == 'post') {
        echo "<style>#edit-slug-box {display:none;}</style>";
    }
}

Si vous souhaitez le supprimer pour plusieurs types de publication (publication, page ou tout type de publication personnalisé que vous pourriez avoir), modifiez la ligne 6 ci-dessus:

     if ( in_array($post_type, array( 'post', 'page', 'your_own_post_type' )) ) {

Si vous souhaitez uniquement le supprimer des publications des non-administrateurs, modifiez la ligne 6 ci-dessus:

     if ( ($post_type == 'post') && (! current_user_can( 'administrator' )) ) {

De plus, si vous souhaitez supprimer la méta-boîte slug pour les publications, ajoutez:

add_action( 'admin_menu', 'custom_remove_meta_boxes' );
function custom_remove_meta_boxes() {
    if ( ! current_user_can( 'administrator' ) ) {
        remove_meta_box('slugdiv', 'post', 'normal');
    }
}
2
Gabriel