it-swarm-pt.tech

- padrão gratuito para a edição automática

Eu tenho procurado por algumas horas e consultado vários posts, mas parece que isso funciona.

Eu tenho esse bug estranho, onde os usuários não podem ver seus rascunhos de um tipo de post personalizado, se eles não atribuem uma categoria a eles. Então, se eles clicarem em "salvar como rascunho" e quiserem voltar para ele mais tarde, não será visível para eles (eu tenho que entrar como administrador e definir uma categoria para que ele fique visível para eles). Eu não tenho idéia do porque isso está acontecendo, mas estou disposto a contornar isso.

Em Configurações > Escrita você pode definir a categoria padrão para uma postagem normal, mas não existe essa opção disponível para um tipo de postagem personalizada. Eu estou bem para definir o tipo padrão para 'Uncategorized', assim como é definido com posts regulares. Então estou tentando conseguir isso.

Alguns trechos que eu encontrei como this são voltados para 'default category upon publish', mas eu preciso deles no autosave (alguns usuários apenas têm acesso a 'save draft' e 'submit for publishing'). Pelo menos 6 que eu encontrei não foram respondidas.

Eu implementei um código específico sem sucesso (não consigo encontrar o snippet para a vida de mim, mas a categoria padrão desejada usada no exemplo era 'autores'). Isso está me deixando louca, e eu realmente aprecio sua ajuda. Obrigado.

EDIT: eu tentei o seguinte código (que eu tenho de aqui ) e tenho 'uncategorized' para ser verificado automaticamente após salvar para o tipo de post 'comunidade', mas o problema é que ele completamente anula outras categorias você pode substituir isso com. Isto é, se você desmarcar 'não categorizado' e escolher categorias significativas, em 'publicar' ou 'salvar', todas essas seleções serão apagadas e serão revertidas para a comunidade. Precisa apenas ter 'uncategorized' until o usuário substitui essa categoria padrão (exatamente como uma categoria defaul trabalha com o tipo 'post' regular).

function add_comm_category_automatically($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
$uncategorized= array (1);
wp_set_object_terms( $post_ID, $uncategorized, 'category');
}
}
add_action('save_post', 'add_comm_category_automatically');
4
zk87

Use o gancho de ação save_post e, na função de retorno de chamada, use a função wp_set_object_terms ($ object_id, $ terms, $ taxonomy, $ append).

Para o seu post personalizado digite o código pode ser assim

function save_book_meta( $post_id, $post, $update ) {

    $slug = 'book'; //Slug of CPT

    // If this isn't a 'book' post, don't update it.
    if ( $slug != $post->post_type ) {
        return;
    }

    wp_set_object_terms( get_the_ID(), $term_id, $taxonomy );
}

add_action( 'save_post', 'save_book_meta', 10, 3 );

$ taxonomy - O contexto no qual relacionar o termo ao objeto. Isso pode ser categoria, post_tag ou o nome de outra taxonomia.

$ term_id - ID do termo da taxonomia

Eu não conheço seu projeto completamente, então você pode considerar este trecho como uma maneira de fazer o que você queria fazer.

Para mais referências, visite estes dois links abaixo:

https://codex.wordpress.org/Function_Reference/wp_set_object_terms

https://codex.wordpress.org/Plugin_API/Action_Reference/save_post

Eu espero que você encontre uma saída.

2
mishu

Eu estou usando pods.io para construir meus CPTs e taxonomias personalizadas. Tive o mesmo problema. Com o código de @mishu, consegui atingir meu objetivo.

function event_preset_category( $post_id, $post, $update ) {

    $slug = 'termine'; //Slug of CPT

    // If this isn't the right slug, don't update it.
    if ( $slug != $post->post_type ) {
        return;
    }

    // Get the ID of default/ fallback category
    // $default_term = get_term_by('slug', 'your_term_slug', 'your_custom_taxonomy');

    $default_term = get_term_by('slug', 'alle', 'termin_cat');

    wp_set_object_terms( get_the_ID(), $default_term->term_id, 'termin_cat' );
}

add_action( 'save_post', 'event_preset_category', 10, 3 );
0
BrainBUG