首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wordpress使用条件标签在functions.php中加载插件css/js

wordpress使用条件标签在functions.php中加载插件css/js
EN

Stack Overflow用户
提问于 2012-09-18 00:19:36
回答 2查看 750关注 0票数 0

所以我一直在尝试让插件脚本/css只在需要的时候加载。我有一个名为“评论”的帖子类别,在下面的functions.php中,我试图只在带有类别“评论”的帖子上加载插件,而不管加载的是什么页面/帖子/主页screen..nothign。有什么可以帮忙的吗?

代码语言:javascript
复制
add_action( 'init', 'stopmyrpjs', 100 );
function stopmyrpjs() {
if (!in_category('review')){
    remove_action('wp_head', 'myrp_load_necessary_js'); 
    remove_action('wp_head', 'myrp_track_traffic'); 
        wp_deregister_script( 'myrp-stuff' );
    wp_dequeue_script( 'jtip' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-ui' );
    wp_dequeue_script( 'myrp-stuff' );
    wp_dequeue_script( 'jquery-ui-accordion' );
    wp_dequeue_script( 'jscolor' );
    wp_dequeue_script( 'sorttable' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-rating' );
    }}

编辑::我已经让它工作了,除了它不能在is_category或in_category上工作的事实。我的工作成果如下:

代码语言:javascript
复制
add_action( 'wp_print_scripts', 'stopmyrpjs', 100 );
function stopmyrpjs() {
if (!is_single()){
    remove_action('wp_head', 'myrp_load_necessary_js'); 
    remove_action('wp_head', 'myrp_track_traffic'); 
wp_deregister_script( 'myrp-stuff' );
    wp_dequeue_script( 'jtip' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-ui' );
    wp_dequeue_script( 'myrp-stuff' );
    wp_dequeue_script( 'jquery-ui-accordion' );
    wp_dequeue_script( 'jscolor' );
    wp_dequeue_script( 'sorttable' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-rating' );
    }}

我仍然希望我可以在某些类别中使用这项工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-18 01:35:30

我觉得你想要is_category

它可以在循环之外使用,并根据当前视图返回一个布尔值。

更新:

更仔细地观察你的操作钩子,“它不工作”的原因是因为动作的优先顺序。您试图在“init”操作取消脚本注册和退出队列,该操作可能在脚本本身实际注册和/或入队之前触发。

我还猜测,外部脚本是由各种插件注册的,每个插件都有自己的操作挂钩和优先级。

不使用初始化钩子,而是尝试将其更改为“wp_footer”,以确保在删除任何多余的脚本之前,所有脚本都由其相应的插件加载:

代码语言:javascript
复制
if (!is_category('review'))
{
    remove_action('wp_head', 'myrp_load_necessary_js'); 
    remove_action('wp_head', 'myrp_track_traffic'); 
    add_action('wp_footer', 'stopmyrpjs');
}
function stopmyrpjs(){
    wp_deregister_script( 'myrp-stuff' );
    wp_dequeue_script( 'jtip' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-ui' );
    wp_dequeue_script( 'myrp-stuff' );
    wp_dequeue_script( 'jquery-ui-accordion' );
    wp_dequeue_script( 'jscolor' );
    wp_dequeue_script( 'sorttable' );
    wp_dequeue_script( 'jquery-MetaData' );
    wp_dequeue_script( 'jquery-rating' );
}

此外,请记住,wp_dequeue_script是一个相对较新的功能(从3.1版开始)。如果出于某种原因,您仍然遇到问题,请尝试将wp_dequeue_script更改为wp_deregister_script。

一些进一步的检查将确保函数本身正在触发,并且适当的视图会使您的条件计算为true。

希望这对你有所帮助,祝你好运。

票数 1
EN

Stack Overflow用户

发布于 2014-06-17 16:02:45

是一个WordPress插件,可以让你完全控制所有的JavaScript和CSS文件。您可以有条件地加载CSS和JS文件只在页面上需要使用可湿性粉剂的conditional tags

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12463304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档