A maneira mais fácil de tornar a publicação privada por padrão

3

Eu não sei como fazer um plugin, então não posso fazer o que é sugerido aqui Como posso fazer com que a página Adicionar nova postagem tenha Visibilidade definida como Particular por padrão?

então, qual é a alternativa?

    
por user310291 22.06.2011 / 21:45

3 respostas

3

A solução aceita não é a resposta correta para alterar a visibilidade de qualquer tipo de postagem para qualquer status. O código abaixo é o caminho certo para alterar o status da postagem.

function set_post_type_status_private( $status, $post_id ) {
    $status = 'private';
    return $status;
}
add_filter( 'status_edit_pre', 'set_post_type_status_private', 10, 2 );

Atualizado:

O filtro acima alterará o status da postagem para Particular quando o usuário clicar no botão Salvar rascunho ou Publicar . Então, ao editar o carregamento da página, se você vir o Status Público , não se preocupe.

Existe mais um filtro disponível para alterar o status antes de salvar no banco de dados. O filtro é status_save_pre , mas não encontrei nenhuma documentação em esta página , por isso escrevi o código abaixo para testar isso.

function save_post_type_status_private( $status ) {
    $status = 'private';
    return $status;
}
add_filter( 'status_save_pre', 'save_post_type_status_private', 10, 1 );

O filtro acima salva a postagem como tipo de postagem Privado assim que a carga da página é editada, portanto, é possível usar esse filtro em vez de status_edit_pre , mas se eu usar o filtro status_save_pre , vou encontrar problema, não consigo excluir nenhuma postagem. Então eu prefiro 'status_edit_pre' sobre 'status_save_pre' até que a equipe do WordPress corrija esse bug.

    
por Vikas Khunteta 15.02.2016 / 09:44
6

Encontrei isso em Fóruns do WordPress :

Você pode simplesmente adicionar isso ao functions.php. Eu testei uma vez e parecia funcionar bem.

function default_post_visibility(){
global $post;

if ( 'publish' == $post->post_status ) {
    $visibility = 'public';
    $visibility_trans = __('Public');
} elseif ( !empty( $post->post_password ) ) {
    $visibility = 'password';
    $visibility_trans = __('Password protected');
} elseif ( $post_type == 'post' && is_sticky( $post->ID ) ) {
    $visibility = 'public';
    $visibility_trans = __('Public, Sticky');
} else {
    $post->post_password = '';
    $visibility = 'private';
    $visibility_trans = __('Private');
} ?>

<script type="text/javascript">
    (function($){
        try {
            $('#post-visibility-display').text('<?php echo $visibility_trans; ?>');
            $('#hidden-post-visibility').val('<?php echo $visibility; ?>');
            $('#visibility-radio-<?php echo $visibility; ?>').attr('checked', true);
        } catch(err){}
    }) (jQuery);
</script>
<?php
}
add_action( 'post_submitbox_misc_actions' , 'default_post_visibility' );
    
por patnz 25.09.2011 / 02:26
1

A alternativa seria encontrar alguém para fazer um plugin.

Se você estiver usando o WordPress.com (o que significa que você não pode instalar plugins arbitrários em seu site), então você está sem sorte. Mas para uma instalação auto-hospedada do WordPress, você precisará escrever um plugin e instalá-lo em seu site. Não há alternativas quando se trata de adicionar funcionalidades personalizadas.

    
por EAMann 22.06.2011 / 22:31

Tags