Personalizar a tela Editar postagem para tipos de postagem personalizados?

15

Qual é a melhor maneira de personalizar completamente a tela de administração Editar postagem para um tipo de postagem personalizado específico?

Eu o personalizei já na criação do tipo de postagem personalizado - adicionando campos adicionais etc., mas quero remover muitos dos elementos, como links permanentes, pré-visualização de postagem, desativar a edição rápida etc.

fxfuture
fonte

Respostas:

16

Algumas dessas perguntas são respondidas aqui: Defina as opções padrão da tela do administrador e a ordem da Metabox

Para remover a metabox do link permanente:

function my_remove_meta_boxes() {
    remove_meta_box('slugdiv', 'my-post-type', 'core');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );

Além disso, você terá que ocultar # edit-slug-box com css ou javascript. consulte: Carregando scripts externos no Admin, mas SOMENTE para um tipo de postagem específico?

Para desativar a edição rápida:

function my_remove_actions( $actions, $post ) {
    if( $post->post_type == 'my-post-type' ) {
        unset( $actions['inline hide-if-no-js'] );
    }
    return $actions;
}
add_filter( 'post_row_actions', 'my_remove_actions', 10, 2 );

Para alterar o link de visualização, você pode usar o filtro 'preview_post_link', mas ele funciona apenas quando a postagem ainda não foi publicada. Portanto, a solução seria remover a caixa de envio e adicionar sua própria caixa modificada:

function my_replace_submit_meta_box() {
    remove_meta_box('submitdiv', 'my-post-type', 'core');
    add_meta_box('submitdiv', __('Publish'), 'custom_post_submit_meta_box', 'my-post-type', 'side', 'core');
}
add_action( 'admin_menu', 'my_replace_submit_meta_box' );

function custom_post_submit_meta_box() { // a modified version of post_submit_meta_box() (wp-admin/includes/meta-boxes.php, line 12)
    ...
}
sorich87
fonte
Muito obrigado. Procuro a resposta para isso há muito tempo! Além disso, existe uma maneira de alterar para onde o botão Visualizar na caixa Publicar está vinculado? Eu gostaria que ele link para mysite.com/video?id='id de post' ou abrir uma mesa de luz com um player de vídeo
fxfuture
Olá novamente - na verdade, não consigo obter nenhum desses bits de código que você forneceu para funcionar. A metabox do permalink apenas desabilita salvar as alterações no permalink em vez de ocultá-lo, e não consigo desativar o link Quick Edit. Alguma ideia?
Fxfuture 28/09/10
Eu editei minha resposta. Acabei de testar o anúncio de código de edição rápida que funciona. Você está falando sobre o link de edição rápida abaixo do nome da postagem em: wp-admin / edit.php? Post_type = sis_course, certo?
sorich87
Ótimo, vou dar uma olhada nas informações adicionais que você postou. Consegui ocultar a edição rápida alterando 'hierárquico' => false no meu tipo de postagem personalizada. Parece não fazer diferença, pois estou usando o plug-in Pedido de Tipos de Post para fazer o pedido de qualquer maneira. Obrigado!
Fxfuture 28/09/10
Substituir a caixa meta de envio funcionou perfeitamente! Na verdade, ele tinha que incluir $ post entre os colchetes em sua função - ou seja, custom_post_submit_meta_box ($ post). Então, essas são as três ordenadas :) Há um pouco mais de personalização que eu quero fazer nas postagens da lista e na tela de edição - você conhece um guia de referência que detalha como remover / substituir todos os elementos diferentes?
Fxfuture 29/09/10