hapus permalink jenis posting khusus

13

Saya telah mendaftarkan jenis posting dengan mengikuti -

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

Dan saya ingin menghapus permalink yang muncul di bawah judul ketika saya memposting liburan baru atau mulai mengedit yang sudah ada. masukkan deskripsi gambar di sini

Saya ingin menghapus ini karena, liburan akan ditampilkan dalam widget terpisah. Saya tidak ingin admin dapat melihatnya sebagai posting tunggal. Tidak ada template yang ditentukan untuk itu.

SachinGutte
sumber
Apakah Anda ingin mereka memiliki halaman arsip dan dapat mengaksesnya dengan permalink?
Krzysiek Dróżdż
@ KrzysiekDróżdż no. itu sebabnya saya ingin menghapus permalink. Tidak ada halaman yang tersedia. Liburan akan ditampilkan dalam widget itu sendiri dan detail dengan modal ajax.
SachinGutte
Jadi, Anda juga harus berhati-hati dalam menonaktifkan permalink, arsip, dan sebagainya. Lihatlah jawaban saya;)
Krzysiek Dróżdż

Jawaban:

41

Nah, ada cara lain. Dan lebih baik, kurasa.

Anda harus melihat register_post_typeparameternya. Anda mungkin harus mengaturnya seperti ini:

'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

Jika jenis posting tidak umum, maka Anda tidak akan melihat bagian editor ini.

Krzysiek Dróżdż
sumber
Cheching jawaban yang dibuat oleh Krzysiek Dróżdż, Apakah ini dapat diterapkan pada taksonomi kustom? PD: Maaf untuk memposting ini di sini, saya tidak memiliki reputasi yang cukup untuk membuat komentar sederhana
Gendrith
1

Nah, salah satu cara cepat adalah menyembunyikan div wadah menggunakan 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>";
    }
}
PAK
sumber
itu pasti salah satu cara untuk melakukan ini. Tapi saya bertanya-tanya untuk filter admin atau sesuatu. Tapi ini berhasil dan terima kasih.
SachinGutte
1

Anda juga dapat menyembunyikan area ini dengan menempatkan kode JavaScript kecil untuk admin_footerdihubungkan.

<?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>';
  }
});
Eh Jewel
sumber