从特定帖子模板中删除Header和Style.css

时间:2020-06-02 作者:Kumar

我想添加一些自定义代码,因此我创建了一个具有以下内容的自定义帖子文件。

<?php
/*
 * Template Name: Custom App
 * Template Post Type: post, page, product
 */

 ?>
 <?php get_header(); ?>
 App Code here...
我想删除header元素<header id="header" class="main-header">style.css 从自定义post using函数。php文件。

我想保持<?php get_header(); ?> 因为yoast SEO和一些分析脚本。

我不想隐瞒main-header 使用CSSdisplay:none 所有物

1 个回复
最合适的回答,由SO网友:Tony Djukic 整理而成

你必须在这里做几件事。。。

首先,您必须创建header.php 我们会给它命名header-custom-app.php. 现在修改复制的文件并删除不需要的HTML元素。

在模板中,而不是使用get_header(); 您可以使用以下选项:

<?php
/*
 * Template Name: Custom App
 * Template Post Type: post, page, product
 */

 ?>
 <?php get_header( \'custom-app\' ); ?>
可以使用多个页眉、页脚和边栏。您可以对两者使用完全相同的方法get_footer();get_sidebar(); 如果模板需要这些或这些的自定义版本。

现在,对于style.css 由于没有使用,我无法真正提供一个具体的示例,因为您还没有提供显示当前如何将其排队的代码,所以我在这里发布的内容基于一些假设。

假设您只排除style.css 通过此模板,您可以执行以下操作:

if( !is_page_template( \'template-custom-app.php\' ) ) {
    wp_enqueue_style( \'yourtheme-style\', get_stylesheet_uri(), array(), \'x.x\' );
}
显然改变了template-custom-app.php 无论模板的名称是什么,请更改yourtheme-style 并更新x.x 到你的版本号。。。但这基本上是把你的style.css 如果条件是“如果不是自定义应用程序模板,请加载样式”。css’。

或者,如果您的自定义应用程序有自己需要的CSS样式表,您可以使用:

if( is_page_template( \'template-custom-app.php\' ) ) {
    wp_enqueue_style( \'customapp-style\', get_stylesheet_directory_uri() . \'/css/custom-app.css, array(), \'x.x\' );
} else {
    wp_enqueue_style( \'yourtheme-style\', get_stylesheet_uri(), array(), \'x.x\' );
}
最后一个代码段假定您有css 用于存储次要CSS文件的主主题目录中的目录,如果它仅位于根目录中,请删除/css 从…起/css/custom-app.css.

Update:

为了防止插件应用它们的脚本,只需在相同的脚本中添加一些出列指令is_template() 条件

if( is_page_template( \'template-custom-app.php\' ) ) {
    wp_dequeue_style( \'plugin-style-handle\' );
    wp_deregister_style( \'plugin-style-handle\' );
    wp_enqueue_style( \'customapp-style\', get_stylesheet_directory_uri() . \'/css/custom-app.css, array(), \'x.x\' );
} else {
    wp_enqueue_style( \'yourtheme-style\', get_stylesheet_uri(), array(), \'x.x\' );
}
这里棘手的部分是,您需要从这些通过插件排队的样式表中获取“句柄”。。。

您可以在插件中搜索它们的排队功能,但更简单的方法是在<head> 标记并定位要删除的插件样式。

下面是一个示例:<link rel="stylesheet" id="searchandfilter-css" href="https://cgroupdesign.com/wp-content/plugins/search-filter/style.css" type="text/css" media="all">

这是插件拉入站点的样式表。id为searchandfilter-css.

所以样式表的句柄是searchandfilter.

如果我想将该插件的样式表出列,我会使用以下方法:

wp_dequeue_style( \'searchandfilter\' );
wp_deregister_style( \'searchandfilter\' );
您必须遍历该模板、head标记和footer中的源代码,找到所有要删除的样式表,并识别它们的句柄。

如果您还想对脚本执行此操作,只需使用:

wp_dequeue_script( \'searchandfilter\' );
wp_deregister_script( \'searchandfilter\' );
基本相同的交易,但将“样式”更改为“脚本”。

相关推荐