2012-09-17 9 views
7

Non sono sicuro di averlo scritto correttamente, ma fondamentalmente volevo caricare il plugin CSS/JS solo sulle pagine che usano i plugin veri e propri. Ho ottenuto molto da esso la ricerca attraverso i file dei plugin per eventuali maniglie utilizzati nei wp_enqueue_script all'interno dei plugin e semplicemente wp_dequeue_script loro in functions.phpwordpress non può dequeue script/style che ha query

Tuttavia, ci sono alcune accoda per lo stile che includono un .php e non un file CSS, ad esempio .. in il plugin si accoda un file

wp_enqueue_style("myrp-stuff", MYRP_PLUGIN_URL . "/myrp-hotlink-css.php"); 

così ho provato:

wp_dequeue_style('myrp-stuff'); 
wp_deregister_style('myrp-stuff'); 

Non funziona

Tuttavia, quando la pagina/post è reso dimostra come

<link rel='stylesheet' id='myrp-stuff-css' href='http://www.modernlogic.co/wp/wp-content/plugins/MyRP/myrp-hotlink-css.php?ver=3.4.2' type='text/css' media='all' /> 

E addes -css per l'id e si rifiuta di annullare l'accodamento/deregistrazione e essere mosso.

ho anche provato quanto segue senza fortuna

wp_dequeue_style('myrp-stuff-css'); 
wp_deregister_style('myrp-stuff-css'); 

Qualche suggerimento?

+0

amerebbe se qualcuno mi potrebbe aiutare con questo :-( –

risposta

8

Giusto per essere sicuri, hai inserito il codice all'interno di una funzione chiamata da un'azione del genere ?:

add_action('wp_enqueue_scripts', 'dequeue_function'); 
function dequeue_function() { 
    wp_dequeue_style(array('myrp-stuff', 'myrp-stuff-css')); 
    wp_deregister_style(array('myrp-stuff', 'myrp-stuff-css')); 
} 
13

script e gli stili possono essere accodati in qualsiasi ordine e in qualsiasi momento, prima wp_print_* azioni vengono attivate. Il che può rendere difficile rimuoverli dalla coda prima dell'output.

Per fare in modo che il ritiro della coda lavori costantemente in wp_print_styles o wp_print_scripts con una priorità elevata, in quanto rimuoverà gli script e gli stili appena prima dell'output.

Per esempio nel codice del plugin loader o del modello functions.php file che si potrebbe avere un gancio funzione e l'azione in questo modo:

function remove_assets() { 
    wp_dequeue_style('myrp-stuff'); 
    wp_deregister_style('myrp-stuff'); 
} 
add_action('wp_print_styles', 'remove_assets', 99999); 

L'impostazione di un elevato priority (terzo argomento di add_action) quando aggancio in azione contribuirà assicurarsi che la richiamata remove_assets venga chiamata all'ultimo, appena prima che gli script/gli stili vengano stampati.

nota, mentre questa tecnica è legittima per rimozione scripts/stili che should't essere utilizzato per l'aggiunta di beni. Vedi questo Wordpress Core blog post per maggiori informazioni.

+0

Woh, leepowers grazie, ho avuto problemi con l'accodamento script molte volte ... questo davvero ha fatto il trucco! – Adal

+0

problema risolto anche per me. + 1 – Hoshts

+0

Ti devo una birra, @ sleepowers – cabgfx

Problemi correlati