Çöp Kutusuna Taşı ve YAYINLA düğmesi hariç her şeyi YAYIN meta kutusunda gizleme


10

(Kayıt denir) özel bir yazı türü var. Bu gönderi türü bir gönderi gibi çalışmadığından TASARRUF TASARRUFU, ÖNİZLEME, Durum, Görünürlük veya Yayınlanma Tarihi'ni göstermek istemiyorum.

Göstermek istediğim tek seçenek YAYINLA ve Çöp Kutusuna Taşı düğmeleri.

Bu diğer seçenekleri gizlemenin bir yolu var mı? Değilse, yeni bir meta kutusuna ekleyebileceğim yeni bir YAYINLA ve Çöp Kutusuna Taşı nasıl oluşturabilirim?

Yanıtlar:


14

CSS kullanarak seçenekleri kolayca gizleyebilirsiniz. Bu bir display ekleyecektir: post.php ve post-new.php sayfalarındaki çeşitli ve küçük yayınlama eylemlerine hiçbir stil eklenmez. Tüm yazı türleri bu iki dosyayı kullandığından belirli bir yazı türünü de denetler.

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');

Brian - Hızlı yanıt için teşekkürler. 'POST_TYPE' yerine özel yazı türünün (kişiler) adını değiştirerek işlevi denedim, ancak düzenleme / yeni sayfalar eklediğimde hiçbir şey kaldırılmadı.
katemerart

En son düzenlememe göz atın. Sorunu çözmelidir. :)
Brian Fegter

Bu parlak - bu göstermek istemiyorum şeyler kaldırmak için yepyeni bir yol açtı! Çok teşekkür ederim.
katemerart

Yardım için sevindim :)
Brian Fegter

1
Sadece belirtmek için: sadece if ( $post->post_type != $my_post_type ){ return; }başlangıçta yaparak kodunuz için bir girinti seviyesini kaldırabilirsiniz . Kodunuzun tamamını ififadeye sarmanıza gerek yoktur .
Pete

1

Bu örnekte, yayınlama seçeneklerini gizlemek istediğiniz yayın türlerini kolayca ayarlayabilirsiniz; örnek, yerleşik saksı türü türü pageve özel yayın türü için bunları gizler cpt_portfolio.

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

Önemli güncelleme

Ayrıca yayınları taslak olarak kaydetmemek için "Yayınlandı" yayın durumunu zorunlu kılmanızı öneririm:

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

// Hook to wp_insert_post_data
add_filter( 'wp_insert_post_data', 'wpse_36118_force_published' );
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.