Você quer adicionar ícones para tipos de postagem personalizados no WordPress para as páginas de novo e editar post? É fácil com nosso trecho de código. Vamos dar uma olhada.
Instruções:
Adicione este trecho ao functions.php ou a um plugin específico do site. Não se esqueça de alterar o URL na linha 9 para o local do seu ícone de 24px por 24px.
add_action( 'admin_head-post.php', 'post_type_icon');
add_action( 'admin_head-post-new.php', 'post_type_icon');
function post_type_icon() {
global $post_type;
?>
<style>
<?php if($post_type == 'products'){ ?>
#icon-edit {
background: url('<?php echo 'http://example.com/wp-content/themes/theme_name/i/icon_24x24.png';?>') no-repeat; }
<?php } ?>
</style>
<?php
}
Alternativamente, você pode usar este código. Este trecho cria um tipo de postagem personalizado (chamado “products” na linha 9) e define o ícone do menu para esse tipo de postagem personalizado. Adicione este trecho ao functions.php ou a um plugin específico do site. Na linha 10 deste trecho, definimos o URL menu_icon para o local da imagem do ícone de 16px por 16px a ser exibida no menu de administração.
$args = array(
'label' => __('Products'),
'singular_label' => __('Product'),
'public' => true,
'show_ui' => true,
'capability_type' => 'page',
'hierarchical' => false,
'rewrite' => true,
'query_var' => 'products',
'menu_icon' => 'http://site.com/wp-content/themes/theme_name/i/icon_16x16.png',
'supports' => array('title','editor','comments','thumbnail')
);
register_post_type( 'product' , $args );
Observação: Se esta é a primeira vez que você adiciona trechos de código no WordPress, consulte nosso guia sobre como copiar/colar trechos de código corretamente no WordPress, para não quebrar acidentalmente seu site.
Se você gostou deste snippet de código, considere conferir nossos outros artigos no site, como: Melhores Construtores de Páginas para WordPress (Comparados).
Não consigo fazer isso funcionar no WP 3.2.1. Tenho um tema personalizado que estou desenvolvendo e adicionei minha própria função ao functions.php e adicionei as ações, mas nada.
Parece que os únicos estilos que estão sendo aplicados a ele são da folha de estilo “colors-fresh.css”. Verifiquei todos os erros de digitação e me certifiquei de que minhas instruções if correspondem à definição correta do tipo de postagem.
Se você visualizar o código-fonte na página de administração, deverá conseguir ver se o CSS acima foi adicionado às páginas de administração corretas do tipo de postagem personalizado. Isso é simplesmente CSS que substitui os ícones padrão usados. Você também pode tentar adicionar !important ao final do CSS para garantir que ele substitua quaisquer padrões.
Claro, 6 minutos depois, eu descobri. Eu troquei a linha
para
Isso pareceu ser tudo o que foi necessário para consertar. Não tenho ideia de por que a linha anterior não estava funcionando para mim, porque logicamente deveria ter funcionado.Uh, tags de código não funcionam?
Nope :/ não com diquss,
pode ser feito com um hook
como aqui
add_action("admin_head", array(&$this, "stylize")); //eu uso classes
function stylize() {
global $post_type;
if($post_type == 'billboard') echo '#icon-edit {background: url("'.plugins_url( 'billboard.png', __FILE__ ).'") no-repeat; }';
}
Sim, eu estava pensando em usar admin_head, no entanto, só precisamos substituir o ícone grande em duas páginas, então adicionar ao admin_head ainda adicionaria o código a todas as páginas.