it-swarm.com.de

benutzerdefinierten Post-Typ-Permalink entfernen

Ich habe den Post-Typ mit folgenden Angaben registriert:

$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);

Und ich möchte Permalink entfernen, der unter dem Titel angezeigt wird, wenn ich einen neuen Feiertag poste oder mit der Bearbeitung eines vorhandenen beginne. enter image description here

Ich möchte dies entfernen, da Feiertage in einem separaten Widget angezeigt werden. Ich möchte nicht, dass der Administrator es trotzdem als einzelnen Beitrag sieht. Hierfür ist keine Vorlage definiert.

13
SachinGutte

Nun, es gibt noch einen anderen Weg. Und besser, denke ich.

Sie sollten sich register_post_type parameters ansehen. Sie sollten sie wahrscheinlich so einstellen:

'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

Wenn der Beitragstyp nicht öffentlich ist, wird dieser Teil des Editors nicht angezeigt.

40

Ein schneller Weg wäre, einfach die Container-Div mit CSS zu verstecken.

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

Sie können diesen Bereich auch ausblenden, indem Sie einen kleinen JavaScript-Code an admin_footer hook einfügen.

<?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