我正在尝试创建一个包装器快捷方式函数,以便在标题中注册和加载样式表。当前,该函数加载此css文件src:
http://my.test/wp-content/theme/css/.css
很明显,我希望它通过给定的参数。问题是,新函数定义中的新函数定义似乎没有使用参数,即使我的add\\u操作的第4个参数是1(参数可传递给函数)。
我做错了什么??请帮助:)
<?php //Registering stylesheets
load_stylesheet_like_a_boss(\'my-style.css\');
function load_stylesheet_like_a_boss($filename){
echo \'parent:\'.$filename; //should return \'parent: my-style.css\'
add_action(\'wp_head\', \'stylesheet_registration\', 5, 1);
function stylesheet_registration($filename){
echo \' / child:\'.$filename.\'<br>\'; //should return \' / child: my-style.css\'
$name = str_replace(\'.css\',\'\', $filename);
wp_register_style($name, get_bloginfo(\'template_directory\').\'/css/\'.$name.\'.css\');
wp_enqueue_style($name, 10);
}
} ?>
SO网友:Chip Bennett
我想你有几个问题:
代码不必要地复杂,您将错误的参数传递给wp_enqueue_style()
. (您似乎正在传递优先级,此函数不接受该优先级。)
您在回调中回音,而回调并不打算输出任何内容。从概念上讲,排队操作回调的包装器似乎没有意义试试这样的方法:
<?php
function load_stylesheet_like_a_boss( $filename ) {
if ( false == $filename ) {
return;
} else {
function enqueue_stylesheet_like_a_boss( $filename ) {
// Stylesheet handle
// Returns all but the ".css" from $filename
$handle = substr( $filename, 0, -4 );
// Stylesheet path
$path = get_template_directory_uri() . \'/css/\' . $filename;
// Enqueue
wp_enqueue_style( $handle, $path );
}
add_action( \'wp_enqueue_scripts\', \'enqueue_stylesheet_like_a_boss\' );
}
}
?>
注:该
load_stylesheet_like_a_boss()
作用
must 在
wp_head
动作射击。这意味着它可能根本不应该在模板中调用,而应该在
functions.php
, 然后在某个地方上钩了-这让我想知道你为什么需要这样一个包装?