Saving category to a post, antes de publicar a publicação

Eu criei um link do painel, que vai adicionar nova postagem, mas com uma categoria já selecionada para a postagem – mas a postagem não pertencerá a esta categoria antes de publicar – isso é um problema, porque eu tenho alguns campos personalizados, que eu atribuí à categoria, e eles não serão visíveis antes da publicação da publicação.

Existe uma maneira de atribuir uma categoria a uma postagem, antes de ser publicada, o que fará o que estou tentando alcançar?

Solutions Collecting From Web of "Saving category to a post, antes de publicar a publicação"

Você pode usar a function wp_set_post_terms para definir uma categoria antes da publicação da publicação. Você precisa obter o post_id ao chamar a variável global $post e obter o id por $post->ID .

Aqui está um exemplo simples. Altere o id (2) para o ID da categoria desejada.

 function wpse_78701_add_category_before_post() { global $post; if( $post->ID ) { wp_set_post_terms( $post->ID, 2, 'category' ); } } add_action('admin_head', 'wpse_78701_add_category_before_post'); 

Atualizar

Se você deseja alterar a categoria que será salva quando o usuário clicar no link, você deve adicionar algo como ?cat=2 no painel: links como este:

 echo ''. __('Add new post in category X', 'theme') .''; 

Então você pode obter a categoria bu use $_GET['cat']; como isso:

 function wpse_78701_add_category_before_post() { global $post; // Get category-ID from the link in dashboard (cat=X) $category = ( isset( $_GET['cat'] ) ? $_GET['cat'] : '' ); if( isset( $post ) && $post->ID ) { wp_set_post_terms( $post->ID, $category, 'category' ); } } add_action('admin_head', 'wpse_78701_add_category_before_post');