desabilita o permalink no tipo de postagem personalizado

3

Eu criei um tipo de postagem personalizado, mas não quero que ele tenha um link permanente. Por padrão, depois de inserir o título do post, ele cria um link perma. Eu não os faço para serem gerados.

De minha leitura, diz-se que o tipo de post personalizado, terá um permalink e não há como desativá-lo. Existe uma maneira que eu possa impedir a chamada de ajax que recebe o link perma.

    
por meWantToLearn 15.03.2013 / 15:46

2 respostas

6
<?php
    add_filter('get_sample_permalink_html', 'my_hide_permalinks');
    function my_hide_permalinks($in){
        global $post;
        if($post->post_type == 'my_post_type')
            $out = preg_replace('~<div id="edit-slug-box".*</div>~Ui', '', $in);
        return $out;
    }

Isso removerá:

  • Permalink se
  • Botão Visualizar postagem
  • Obter botão de link curto

Se você deseja remover somente o link permanente, substitua a linha que contém preg_replace por

$out = preg_replace('~<span id="sample-permalink".*</span>~Ui', '', $in);

ATUALIZAÇÃO:

get_sample_permalink_html foi alterado na versão 4.4.

Aqui está o código atualizado e testado:

add_filter('get_sample_permalink_html', 'my_hide_permalinks', 10, 5);

function my_hide_permalinks($return, $post_id, $new_title, $new_slug, $post)
{
    if($post->post_type == 'my_post_type') {
        return '';
    }
    return $return;
}
    
por Max Yudin 15.03.2013 / 16:26
4

Enquanto a resposta aceita parece apenas ocultar o permalink de mostrar, mas ainda está sendo gerado e acessível, você pode desativar o permalink de mostrar e ser acessível, definindo certos parâmetros register_post_types .

Consegui o que precisava definindo apenas o seguinte, mas dependendo do seu caso específico, você pode querer ajustar alguns dos outros parâmetros .

'public' => false,
'show_ui' => true

Mais: enlace

    
por user33056 06.04.2017 / 07:03