Ao criar uma nova postagem, logo após clicar em "Adicionar novo" , quando o editor de postagens aparecer, em vez de usar o menu suspenso e escolher um campo personalizado para usar, eu gostaria de ter algumas entradas de campo personalizadas padrão extremidade aberta.
Visualmente, em vez de:
Eu gostaria de ter algo como:
Eu sei que existem plugins para isso (CPT, mais campos, etc.), mas eu gostaria de uma maneira simples de fazer isso com uma função básica.
Tentei algo assim (estou usando um tipo de postagem personalizado 'product'):
function register_custom_fields( $post_ID ) {
global $wpdb;
if( !wp_is_post_revision( $post_ID ) ) {
add_post_meta( $post_ID, 'reference', '', true);
add_post_meta( $post_ID, 'price', '', true);
}
}
add_action('edit_product', 'register_custom_fields');
Mas isso não parece funcionar. Eu acho que o gancho provavelmente está errado (porque edit_post
vem após uma atualização), mas não vejo nenhum gancho para "nova publicação" (logo após o usuário clicar em "nova publicação" no wp admin). Existe algum?
Ou talvez toda a idéia esteja errada e haja outra maneira?
fonte
Este é o método adequado para adicionar suporte a campos personalizados (você não recebe os campos em branco ao editar postagens)
fonte
Você deve usar a ação save_post e isolar sua operação, verificando o tipo de postagem, pois isso é executado em todos os tipos de postagem. Obviamente, há um pouco mais de lógica que você precisará incorporar a isso para que funcione para você. Você provavelmente deve definir um meta-campo de postagem que verifique se definiu os padrões uma vez, para que seus usuários não fiquem frustrados se desejarem deixar um campo de meta-postagem em branco.
Se você deseja que os padrões sejam nulos (como visto no seu exemplo de código), não crie uma função, pois isso apenas adiciona campos de meta e pós-metadados não são preenchidos com valores por padrão.
fonte
Estou procurando uma meta descrição única para cada postagem personalizada em um site WP que estou desenvolvendo. Então, eu também estava procurando um campo personalizado padrão e cheguei aqui.
Sei que este é um post bastante antigo, mas achei que publicaria a resposta simples que encontrei em mariokostelac.com .
kg é o meu espaço para nome, você pode nomear a função como quiser. Sou bastante iniciante em customizações de hooks e WP em geral, mas acredito que wp_insert_post é o hook que você está procurando.
fonte
get_post_type()
. Além disso, ao fazer uma comparação livre, você deve usar a sintaxe de condição do estilo YODA.get_post_type($post_id)
melhor que$_GET['post_type']
?'page' === $_GET['post_type']
. Caso contrário , quando você esquecer um único,=
poderá acabar em uma situação em que atribui um valor em vez de comparar dois valores. E isso acabará como lixo no seu banco de dados. Você também pode querer usar===
segura tipo de comparação (é o valorpage
e é o valor do tipo?string
?)'page' === get_post_type($post_id)
:?se alguém precisar de campo personalizado por tipo de postagem, deixo o código abaixo da maneira que eu fiz e funciona bem para mim :)
} add_action ('wp_insert_post', 'awh_field_type');
fonte