我已经设置了一个“相册”自定义帖子类型,并想在索引页上红色圆圈所在的位置添加一个图标(参见下图;来自wptheming.com)。
这是我用来替换图标的函数。CSS是我用firebug检查图标元素时发现的:
add_action(\'admin_head\', \'album_foo\');
function album_foo() {
global $post_type;
?>
<style>
<?php if ($post_type == \'album\') : ?>
#icon-album.icon32.icon32-posts-album {
background:url(\'<?php get_template_directory_uri(); ?>/images/album32x32.png\') no-repeat;
}
<?php endif; ?>
</style>
<?php
}
我还在函数中尝试了此CSS:
#icon-edit.icon32-posts-album {
background:url(\'<?php get_template_directory_uri(); ?>/images/album32x32.png\') no-repeat;
}
我不知道我的CSS缺少了什么,但我的图标没有显示出来。
最合适的回答,由SO网友:chowwy 整理而成
我想出来了!
WordPress在自定义贴子索引/编辑/添加页面上查找32x32图标时,首先查找:
/wp-admin
因为那是WordPress 32px图标所在的位置。但是CSS引用通常与样式表的位置相关。因此,在将图标的位置添加到CSS时,首先,您必须使用/wp admin作为参考点,因此它将不同于大多数其他CSS参考。然后使用这些相对URL访问图标所在的目录。
自定义post类型32px图标的CSS应如下所示:
#icon-[your-menu-slug].icon32.icon32-posts-[custom-post-type] {
background: url(\'[relative URL, but get out of wp-admin first!]/icon-location\') no-repeat;
}
希望这对其他人有帮助!
SO网友:s_ha_dum
除非您的服务器已专门配置为这样做,否则PHP将无法在中工作。css文件。看起来这就是你想要做的。Relative URLs 与WordPress的大多数部分相比,在样式表中可以很好地工作。尝试使用相对URL作为图标的路径。
编辑:
事实并非如此#icon-album
. 是的#icon-edit
. 那个id
不会随帖子类型而改变,至少不会随我尝试的帖子类型而改变。这个class
es更改。那个id
似乎保持不变。
add_action(\'admin_head\', \'album_foo\');
function album_foo() {
global $post_type;$_GET; ?>
<?php if (( isset($_GET[\'post_type\'] && $_GET[\'post_type\'] == \'album\') || ($post_type == \'album\')) : ?>
<style type="text/css">
#icon-edit.icon32.icon32-posts-post {
background:url(\'<?php get_template_directory_uri(); ?>/images/album32x32.png\') no-repeat;
}
</style>
<?php endif;
}
我移动了
<style
标记到条件中,因为不需要打印空标记,并且在调试时
WARNING
s打印灌输
<style>
可能会破坏它的标签。我还添加了一个检查
$_GET[\'post_type\']
在尝试使用之前已设置。
SO网友:Stephen Harris
如果使用firebug时看到
#icon-album.icon32.icon32-posts-album {
background:url(\'<?php get_template_directory_uri(); ?>/images/album32x32.png\') no-repeat;
}
那你就是在传递字符串
\'<?php get_template_directory_uri(); ?>/images/album32x32.png\'
到css文件中的background属性,并且它们不执行php代码。
如果图像和CSS位于主题文件夹中(或者至少CSS文件位于图像上方的某个目录中),则可以使用相对URL。
对于那些正在开发用于发布的插件并且不想将一些CSS文件排成一行的人。。。
// Adds icon to the page head
add_action(\'admin_head\', \'wpse74477_plugin_header_image\');
function wpse74477_plugin_header_image() {
$post_type = get_current_screen()->post_type;
if ( \'album\' != $post_type )
return;
?>
<style type="text/css">
.icon32.icon32-posts-album {
background: url(<?php echo get_template_directory_uri(); ?>/images/album32x32.png) !important;
}
</style>
<?php
}