özel gönderi türü kalıcı bağlantısını kaldır


13

Aşağıdaki yazı tipini kaydettim -

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

Yeni bir tatil yayınladığımda veya mevcut olanı düzenlemeye başladığımda başlığın altında görünen kalıcı bağlantıyı kaldırmak istiyorum. resim açıklamasını buraya girin

Bunu kaldırmak istiyorum, çünkü tatiller ayrı widget'ta görüntülenecek. Yönetici zaten tek bir yazı olarak görmek istiyorum istemiyorum. Bunun için tanımlanmış bir şablon yok.


Arşiv sayfasına sahip olmalarını ve kalıcı bağlantıyla erişebilmelerini ister misiniz?
Krzysiek Dróżdż

@ KrzysiekDróżdż no. bu yüzden kalıcı bağlantıyı kaldırmak istiyorum. Böyle bir sayfa yok. Tatiller widget'ın kendisinde ve modalda ajax ile detaylarda gösterilecek.
SachinGutte

Bu nedenle, kalıcı bağlantıları, arşivleri vb. Devre dışı bırakmaya da dikkat etmelisiniz. Cevabımı bir göz atın;)
Krzysiek Dróżdż

Yanıtlar:


41

Başka bir yol daha var. Ve daha iyisi, sanırım.

register_post_typeParametrelere bakmalısınız . Muhtemelen onları şöyle ayarlamalısınız:

'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

Gönderi türü herkese açık değilse, düzenleyicinin bu bölümünü görmezsiniz.


Krzysiek Dróżdż tarafından verilen cevabı cheching, Bu özel taksonomilere uygulanabilir mi? PD: Bunu buraya gönderdiğim için özür dilerim, basit bir yorum yapmak için yeterli itibarım yok
Gendrith

1

Hızlı bir yol, sadece div div CSS kullanarak gizlemek olacaktır.

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>";
    }
}

bu kesinlikle bunu yapmanın bir yolu. Ama yönetici filtresi falan merak ediyorum. Ama bu işe yarıyor ve teşekkür ederim.
SachinGutte

1

Ayrıca, admin_footerkancaya küçük bir JavaScript kodu yerleştirerek bu alanı gizleyebilirsiniz .

<?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>';
  }
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.