web-dev-qa-db-fra.com

supprimer le type de message personnalisé permalien

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 veux supprimer le permalien qui apparaît sous le titre lorsque je poste un nouveau jour férié ou que je commence à modifier un jour férié existant. enter image description here

Je veux supprimer cela parce que, 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 tel.

13
SachinGutte

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

Vous devriez regarder register_post_type parameters. 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 message n'est pas public, vous ne verrez pas cette partie de l'éditeur.

40
Krzysiek Dróżdż

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>";
    }
}
1
M-R

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

<?php
add_action('admin_footer', function() {
  global $post_type;
  if ($post_type == 'your_custom_post_type') {
    echo '<script> document.getElementById("edit-slug-box").outerHTML = ""; </script>';
  }
});
1
Eh Jewel