【发布时间】:2015-06-05 10:40:37
【问题描述】:
我不确定如何提出这个问题,所以我开始说在我的插件文件夹中我有 2 个文件:
1 - “index.php”
add_action( 'wp_enqueue_scripts', 'register_plugin_styles' );
function my_admin_setting() {
include('includes/my_admin.php');
include('css/wp-admin.php');
}
function custom_admin_actions() {
add_menu_page("Customise-Admin", "Custom-Admin", 1, "Custom_Admin", "my_admin_setting");
add_submenu_page('Custom_Admin', 'About', 'About', 1, 'info', "my_admin_info");
}
function my_admin_theme_style() {
wp_register_style('my-admin-theme', plugins_url('css/wp-admin.php', __FILE__));
wp_enqueue_style('my-admin-theme');
}
add_action('admin_enqueue_scripts', 'my_admin_theme_style');
add_action('login_enqueue_scripts', 'my_admin_theme_style');
add_action('admin_menu', 'custom_admin_actions');
add_option( 'my_adminbar_color', 'red' );
2 - wp_admin.php(样式)
<?php header('Content-type: text/css');
?>
<?php
$blue = '#0e70d1';
$dkgray = '#333';
$dkgreen = '#008400';
?>
<?php $myplugin_color = get_option( 'my_adminbar_color' ); ?>
#wpadminbar {
background-color: <?php echo $myplugin_color;?> !important;
}
这里的问题是我试图将选项传递给 php 样式。但是,当我不插入“get_option”函数时,我的自定义样式是可见的,一旦我传递了该值,样式就不再呈现。
我可以看到,当 css 代码打印在插件页面中时,该选项被传递给样式文件,而不是像 CSS 那样运行代码,它似乎被格式化为普通文本。
有人可以向我解释为什么会发生这种情况吗?我怎样才能将选项传递给我的样式文件?
【问题讨论】:
-
get_option 如果未设置该值,则返回 false。您可以添加一个默认值,例如
get_option( 'my_adminbar_color', '#ABCDEF' )。 -
但是我已经在索引页设置了 add_option( 'my_adminbar_color', 'red' );我可以看到红色值正在输出,但样式停止工作。一旦我删除 get_option 函数,样式就会再次起作用。
-
哦,好的,您直接调用 wp-admin.php 文件,因此该文件中没有加载 Wordpress,并且没有定义
get_option。我会尝试给出解决方案。 -
非常感谢 d79。当我不直接调用 wp-admin.php 并从 wp-admin.php 中删除 get_option 时,该样式再次起作用。