只有当WPTouch处于活动状态时,我才能设置某个元素的样式?

时间:2012-05-13 作者:Abel

我刚刚安装了wptouch plugin 用于在移动设备中自动设置我的博客样式。当此视图处于活动状态时,如何设置页面上隐藏的特定元素的样式?

一、 尤其是在我的博客上Under My Hat, 我有一个WP Follow Me plugin 这在移动设备上表现得相当恼人,这就是我想隐藏它的原因。但其他元素是自定义表和源代码示例,我希望采用不同的样式。

1 个回复
SO网友:brasofilo

我使用以下代码侵入WPTouch,直到我购买了许可证:)

比简单地隐藏其他插件更好的是禁用它的所有功能
并且访问者可以在其设备中加载较少(且不必要)的元素。

这个insert_scripts 非常直接,根据您的需要进行调整。

这个remove_scripts 我通过快速分析Follow Me code.
要检查您是否真的摆脱了插件脚本,请使用Safari及其活动监视器和用户代理模拟器进行测试(它在Mac上非常完美,在Wins中非常适合donnow)。

edit: 我的原始/工作脚本在remove_scripts:

remove_action(\'wp_head\', \'add_css\');
wp_deregister_script( \'jqplot\' ); 
现在,重读这个答案,我认为add_action(\'wp_head\',\'function\'); 习惯于remove_action(\'init\',\'function\'); may not be correct, 很高兴有同行评议。。。

<?php
/*
Plugin Name: WPTouch Retouch
Plugin URI: https://wordpress.stackexchange.com/q/52026/12615
Description: Add custom scripts to enhance WPTouch and remove WP Follow Me scripts
Version: 1.0
*/

add_action(\'init\', \'wpse_52026_process_wptouch\');

function wpse_52026_process_wptouch(){
    if (function_exists(\'bnc_wptouch_is_mobile\')) {
        if(bnc_wptouch_is_mobile()) {
            add_action(\'wp_head\', \'wpse_52026_remove_plugin_scripts\', 1);
            add_action(\'wp_head\', \'wpse_52026_insert_wptouch_scripts\');
        }
    } 
}

function wpse_52026_remove_plugin_scripts() {
    remove_action(\'init\', \'wp_followme_scripts\');
    remove_action(\'init\', \'followme_admin_warnings\');
    remove_action(\'wp_head\', \'wp_followme_css\');
    remove_action(\'get_footer\', \'show_followme\');
    //wp_deregister_script( \'if-there-were-a-registered-script\' ); 
}

function wpse_52026_insert_wptouch_scripts() {
    $today = \'Valencia : Spain : \'. date("d/m/Y");
    echo <<<HTML
    <style type="text/css">
        body {background:url(\'http://www.example.com/wp-content/uploads/pattern.png\') fixed !important;}
    </style>
    <script type="text/javascript">
    jQuery(document).ready( function($) {
        $("div.content").prepend(\'<div style="margin-left: 13px;"><h4>Site Description</h4><small>{$today}</small></div>\');
    });
    </script>
HTML;
}
注意PHP Heredoc syntax <<<HTML

[important update]<第一次回答时,我忘记了一个重要部分:this has to run as a plugin.

显然,将代码放入桌面主题functions.php 文件不起作用。而破解其他插件有点像pita:每次更新都必须重新破解。。。

[references on how to remove other plugins\' styles and scripts]https://wordpress.stackexchange.com/a/40833/12615
Is it possible to stop selected plugins from loading on certain template pages?
How to dequeue a script?
https://wordpress.stackexchange.com/a/27983/12615
https://wordpress.stackexchange.com/a/13331/12615

结束