如何将.css文件应用于虚拟页面?

时间:2018-11-21 作者:65535

如果使用以下插件在保持主题完整的情况下创建虚拟页面wp-virtual-page-tutorial, 怎么可能。css文件是否应用于此虚拟页面?

如何使用将虚拟页名称用作条件的if语句来实现这一点?

任何帮助都将不胜感激。

以下是创建虚拟页面的代码:

Class VPTutorial {
    function __construct() {
        register_activation_hook( __FILE__, array( $this, \'activate\' ) );
        add_action( \'init\', array( $this, \'rewrite\' ) );
        add_filter( \'query_vars\', array( $this, \'query_vars\' ) );
        add_action( \'template_include\', array( $this, \'change_template\' ) );
    }
    function activate() {
        set_transient( \'vpt_flush\', 1, 60 );
    }
    function rewrite() {
        add_rewrite_endpoint( \'dump\', EP_PERMALINK );
        add_rewrite_rule( \'^the-page$\', \'index.php?vptutorial=1\', \'top\' );
        if(get_transient( \'vpt_flush\' )) {
            delete_transient( \'vpt_flush\' );
            flush_rewrite_rules();
        }
    }
    function query_vars($vars) {
        $vars[] = \'vptutorial\';
        return $vars;
    }
    function change_template( $template ) {
        if( get_query_var( \'dump\', false ) !== false ) {
            //Check theme directory first
            $newTemplate = locate_template( array( \'template-dump.php\' ) );
            if( \'\' != $newTemplate )
                return $newTemplate;
            //Check plugin directory next
            $newTemplate = plugin_dir_path( __FILE__ ) . \'templates/template-dump.php\';
            if( file_exists( $newTemplate ) )
                return $newTemplate;
        }
        if( get_query_var( \'vptutorial\', false ) !== false ) {
            $newTemplate = locate_template( array( \'template-vptutorial.php\' ) );
            if( \'\' != $newTemplate )
                return $newTemplate;
            //Check plugin directory next
            $newTemplate = plugin_dir_path( __FILE__ ) . \'templates/template-vptutorial.php\';
            if( file_exists( $newTemplate ) )
                return $newTemplate;
        }
        //Fall back to original template
        return $template;
    }
}
new VPTutorial;

1 个回复
SO网友:Jacob Peattie

你可以加入wp_enqueue_scripts 和使用wp_enqueue_style() 与通常的方式相同,但使用相同的条件更改模板以有条件地将样式表排队:

if ( get_query_var( \'dump\', false ) !== false ) {}
因此,您可以使用以下方法加载样式表:

function enqueue_stylesheet() {
    if ( get_query_var( \'dump\', false ) !== false ) {
        wp_enqueue_style( \'dump\', \'path/to/css/file.css\' );
    }
}
和你的另一半一起add_action() 电话:

add_action( \'wp_enqueue_scripts\', array( $this, \'enqueue_stylesheet\' ) );

结束

相关推荐

WordPress网站不加载css、js和图片

我有一个基本网站,以Betheme为主题安装了插件:Youast SEO WPBakery网页生成器Visual Composer的最终插件Slider Revolution网站评论非常简单的SSL复制帖子Cookie通知动态文本扩展联系人表单7联系人表单7联系人表单7条件字段问题是网站随机加载没有CSS,JS和图像(404错误),但当我重置网站的cookie时,它将再次正常加载。我已经重新安装了WordPress,并删除了网站没有使用的所有插件。那么有人知道发生了什么事情,或者是什么导致了这个问题吗?W