Preencha previamente os campos com o conteúdo externo ao criar uma nova postagem

2

Gostaria de encontrar uma maneira de preencher alguns dos campos da página /wp-admin/post-new.php de uma fonte externa.

Funciona para o título: o carregamento de /wp-admin/post-new.php?post_title=title1 preenche a entrada de título com title1 .

Você tem a ideia, o que seria ótimo é algo como /wp-admin/post-new.php?post_title=title1&content=content1&tags=tag1,tag2&cat=cat1,cat2 ... para que quando eu chegar no post-new.php com a maioria dos campos já preenchidos de um script externo.

Eu precisaria preencher campos personalizados também.

Como posso fazer isso? Qual a melhor opção? Um script externo completo que se conecta à base e executa consultas de inserção? Um plugin? Em caso afirmativo, você tem algumas sugestões?

    
por Jan Fabry 06.02.2011 / 00:03

3 respostas

10

Uma postagem vazia é criada por get_default_post_to_edit() . Essa função lê os valores post_title , content e excerpt na matriz $_REQUEST e também os filtra por default_title , default_content e default_excerpt .

Por padrão, essa função retorna um objeto "fake" $post , mas se o parâmetro $create_in_db estiver definido como true , ele será salvo no banco de dados com o post_status definido como auto-draft .

Este parâmetro está definido em post-new.php , o que significa que você pode conectar-se a wp_insert_post e salvar itens extras, como tags, da matriz $_REQUEST ou de uma fonte externa. Um exemplo muito simples:

add_action( 'load-post-new.php', 'wpse8650_post_new' );
function wpse8650_post_new()
{
    add_action( 'wp_insert_post', 'wpse8650_wp_insert_post_default' );
}

function wpse8650_wp_insert_post_default( $post_id )
{
    add_post_meta( $post_id, 'wpse8650_meta_key', $_REQUEST['meta_value'] );
    wp_set_post_tags( $post_id, $_REQUEST['tags']) );
}

Isso funciona porque os campos personalizados e as tags post são lidos novamente no banco de dados (ou no cache) durante a construção da página, e fazemos isso antes que esses metaboxes sejam exibidos.

    
por Jan Fabry 12.02.2011 / 14:28
3

Se isso é para adicionar usuários finais, talvez o mais fácil seja criar um script jQuery para atribuir os valores. Veja como analisar o URL:

E aqui está como adicionar Javascript no WordPress:

Por fim, basta visualizar a fonte na tela de edição do WordPress para ver os nomes dos campos de entrada e, em seguida, mostra como usar o jQuery para atribuir valores:

por MikeSchinkel 06.02.2011 / 00:23
0

Além da resposta de Mike, você também pode usar o servidor XML-RPC do WordPress para fazer postagens externas. Depende do que você está tentando fazer.

    
por Zack 06.02.2011 / 05:46