将样式表动态加载到wp_head时出现问题

时间:2011-09-29 作者:Harley Alexander

我正在尝试创建一个包装器快捷方式函数,以便在标题中注册和加载样式表。当前,该函数加载此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);
    }
} ?>

2 个回复
SO网友:Joost de Valk

虽然您的代码有点凌乱,但我认为破坏它的一件事是wp_enqueue_style 你已经做到了。第二个参数“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() 作用mustwp_head 动作射击。这意味着它可能根本不应该在模板中调用,而应该在functions.php, 然后在某个地方上钩了-这让我想知道你为什么需要这样一个包装?

    结束

    相关推荐

    Functions.php条件标记仅适用于自定义POST类型

    我正在使用gpp幻灯片,它会覆盖wordpress的默认库显示。我只想在我的自定义帖子类型“listings”上使用它-我如何引用它来仅替换wordpress在“listings”页面上的默认库?我的函数中有此代码。php,我似乎无法获得自定义帖子类型的正确参考:add_action(\'wp_head\',\'add_gpp_gallery\'); function add_gpp_gallery() { if( ( is_single() || is_page() ) &