Deseja adicionar ícones para o tipo de postagem personalizada no WordPress para páginas de postagem novas e editadas? É fácil com nosso snippet de código. Vamos dar uma olhada.
Instruções:
Adicione esse snippet ao functions.php ou a um plug-in específico do site. Não se esqueça de alterar o URL na linha 9 para o local de 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 }
Como alternativa, você pode usar este código. Esse snippet cria um tipo de postagem personalizado (chamado “products” na linha 9) e define o ícone de menu para esse tipo de postagem personalizado. Adicione esse snippet ao functions.php ou a um plug-in específico do site. Na linha 10 desse snippet, definimos o URL menu_icon
como 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 corretamente trechos de código no WordPress para não danificar acidentalmente seu site.
Se você gostou desse snippet de código, considere dar uma olhada em nossos outros artigos no site, como: Melhores construtores de páginas do WordPress (comparados).
Cannot seem to get this to work in WP 3.2.1. I have a custom theme I’m developing and I’ve added my own function into the functions.php and added the actions, but no dice.
It appears as though the only styles that are applying to it are from the “colors-fresh.css” stylesheet. I’ve checked all misspellings and made sure that my if statements match up with the correct post type definition.
If you view the source on the admin page you should be able to see if the css above is added to the proper custom post type admin pages. This is simply css that overrides he default icons used. You may also want to try adding !important to the end of the css to make sure it would override any defaults.
Of course 6 minutes later, I figure it out. I switched the line
to
This seemed to be all that was necessary to fix it. No idea why the previous line wasn't working for me because logically it should have been.
Uh, code tags not work?
Nope :/ not in with diquss,
it can be done with one hook
like here
add_action("admin_head", array(&$this, "stylize")); //i use classes
function stylize() {
global $post_type;
if($post_type == 'billboard') echo '#icon-edit {background: url("'.plugins_url( 'billboard.png', __FILE__ ).'") no-repeat; }';
}
Yes I was thinking about using admin_head, however we only need to replace the large icon on two pages so adding to the admin_head would still add the code to every page.