将部分站点的函数.php分开

时间:2014-04-09 作者:sheriffderek

我为一些艺术家建立了一个自定义WordPress网站。我正在制作一个与网站其他部分完全不同的页面。事实上,还有一个。php页面。这是为了一本特定的新书,它安装在同一个版本上的唯一原因是它共享博客帖子。其余的都是具体的。

这些页面不需要来自站点其他部分的任何css或js,事实上,这正在妨碍我。我不得不高估一切,我担心泄漏会破坏主站点。

他们有自己的总帐。php和页脚书籍。php

我怎样才能让它们有自己的功能。php,以便我可以拉入css和js,这是完全独立于主站点?

(附言-对于多站点或任何大创意来说,为时已晚)

非常感谢。

德国

2 个回复
最合适的回答,由SO网友:Rarst 整理而成

functions.php 不幸的是,这是主题加载过程中根深蒂固的一部分。如果你的架构足够灵活,你应该能够有条件地解开相关的部分。

即使不是这样,模板也可以让您完全控制页面输出。你可以完全忽略wp_head()/wp_footer() 如果这是满足需求的最短方法,则可以(半)手动调用和处理资产。

SO网友:Pieter Goosen

这很容易用body classesconditional statements. 查看您的问题,您将有一个自定义的“页面”。php和single。php“用于您正在做的事情。为此,我将其称为“页面自定义”。“php”和“单一自定义”。php\'

现在,我们可以使用以下函数为这些页面分配body类

function mytheme_body_classes( $classes ) {
    if ( is_page_template( \'page-pop.php\' ) || is_page_template( \'single-custom.php\' ) ) {
        $classes[] = \'special\';
    }
    return $classes;
}

add_filter( \'body_class\', \'mytheme_body_classes\' );
这将分配一个special 到这些页面。

现在,您可以在css文件夹中创建一个样式表,并将其称为“自定义”。css\'。还可以在js文件夹中创建一个js文件,并将其称为“自定义”。js\'

您可以有条件地加载样式表和js文件,以便它们只加载在具有body类的这两个指定页面上special

function myscripts_enqueue() {
    $classes = get_body_class();
        if (in_array(\'special\',$classes)){
            wp_enqueue_style( \'custom-css\', get_template_directory_uri() . \'/css/custom.css\', array() );
            wp_enqueue_script( \'custom-script\', get_template_directory_uri() . \'/js/custom.js\', array( \'jquery\' ), \'\' , true );
        }
}
add_action( \'wp_enqueue_scripts\', \'myscripts_enqueue\' );

结束

相关推荐

删除特定插件页面的所有CSS

我现在正在编写一个插件,在页面上挂上一个[标签]。从现在起,除了自定义css之外,其他一切都可以正常工作。我已经在一个开发站上用基本主题(我想是20-14)编写了我的插件。当我把我的插件放在真实的网站上时,这很难看,因为网站主题css没有处理。有一种方法可以重置或删除插件中的所有css。我这样问是因为如果有一天我想改变我的主题,我将不得不重写我的插件来处理更多的主题css。从现在起,我一直在努力尝试使用wp\\U注销器样式(“slug”)。add_action( \'wp_enqueue_scripts\