remove permalink de type message personnalisé

11

J'ai enregistré le type de message avec ce qui suit -

$holidayLabels = array(
    'name' => __( 'Holidays'),
    'singular_name' => __( 'Holidays'),
    'all_items' => __( 'All Holidays'),
    'add_new' => __( 'Add New Holiday'),
    'add_new_item' => __( 'Add New Holiday'),
    'edit_item' => __( 'Edit Holiday'),
    'new_item' => __( 'New Holiday'),
    'view_item' => __( 'View Holidays'),
    'not_found' => __( 'No Holidays found'),
    'not_found_in_trash' => __( 'No Holidays found in Trash'),
    'parent_item_colon' => ''

);

$holidayArgs = array(
    'labels'               => $holidayLabels,
    'public'               => true,
    'publicly_queryable'   => true,
    '_builtin'             => false,
    'show_ui'              => true,
    'query_var'            => true,
    'rewrite'              => array( "slug" => "holidays" ),
    'capability_type'      => 'post',
    'hierarchical'         => false,
    //'menu_position'        => 6,
    'supports'             => array( 'title'),
    'has_archive'          => false,
    'show_in_nav_menus'    => false,

);
register_post_type('holidays', $holidayArgs);

Et je souhaite supprimer le lien permanent qui apparaît sous le titre lorsque je diffuse un nouveau jour férié ou commence à modifier un jour férié existant.

Je veux supprimer ceci car les vacances seront affichées dans un widget séparé. De toute façon, je ne veux pas que l'administrateur puisse le voir comme un message individuel. Il n'y a pas de modèle défini pour un tel.

    
posée SachinGutte 01.08.2013 - 20:16

3 réponses

34

Eh bien, il y a un autre moyen. Et mieux, je suppose.

Vous devriez consulter les paramètres register_post_type . Vous devriez probablement les définir comme ceci:

'public' => false,  // it's not public, it shouldn't have it's own permalink, and so on
'publicly_queryable' => true,  // you should be able to query it
'show_ui' => true,  // you should be able to edit it in wp-admin
'exclude_from_search' => true,  // you should exclude it from search results
'show_in_nav_menus' => false,  // you shouldn't be able to add it to menus
'has_archive' => false,  // it shouldn't have archive page
'rewrite' => false,  // it shouldn't have rewrite rules

Si le type de publication n'est pas public, vous ne verrez pas cette partie de l'éditeur.

    
réponse donnée Krzysiek Dróżdż 01.08.2013 - 21:05
1

Eh bien, un moyen rapide serait simplement de cacher la div de conteneur en utilisant CSS.

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>";
    }
}
    
réponse donnée M-R 01.08.2013 - 20:38
0

Vous pouvez également masquer cette zone en plaçant un petit code JavaScript dans admin_footer hook.

<?php
add_action('admin_footer', function() {
  global $post_type;
  if ($post_type == 'your_post_type') {
    echo '<script> document.getElementById("edit-slug-box").outerHTML = ""; 
    </script>';
  });
}
    
réponse donnée Eh Jewel 24.07.2018 - 13:07

Lire d'autres questions sur les étiquettes