Le codex WordPress pointe vers un moyen extrêmement simple de changer le URL du répertoire wp-content, ce qui revient à l'ajouter dans wp-config. php:
define( 'WP_CONTENT_URL', 'http://example.com/wp-content');
Et cela fait le travail de servir la plupart des fichiers JavaScript et CSS sur mon site Web à partir du domaine différent, sauf deux.
http://mywebsite.com/wp-includes/js/comment-reply.js
http://mywebsite.com/wp-includes/js/quicktags.js
La raison en est très claire: ces fichiers JavaScript sont fournis à partir du répertoire wp-includes , qui n'est pas affecté par la règle susmentionnée.
Alors, existe-t-il une méthode simple ou similaire pour les faire servir à partir de example.com
, c'est-à-dire le domaine de mon choix? ou la désinscription et la mise en file d'attente des scripts à partir d'une URL personnalisée (effectuée dans functions.php) constituent-elles le seul moyen?
D'accord, j'ai essayé de nombreux codes et méthodes (littéralement) et j'ai échoué lamentablement. Ainsi, comme je l'ai dit dans la question, le seul moyen sûr semble être de ré-enregistrer (désenregistrer et mettre en file d'attente) les scripts.
Les scripts:
http://mywebsite.com/wp-includes/js/comment-reply.js
http://mywebsite.com/wp-includes/js/quicktags.js
Doit être servi à partir de:
http://example.com/wp-includes/js/comment-reply.js
http://example.com/wp-includes/js/quicktags.js
Code dans functions.php:
add_action('wp_enqueue_scripts','wpse56742_register_script');
function wpse56742_register_script(){
//Register and enqueue Comment Reply script
wp_deregister_script('comment-reply');
wp_register_script('comment-reply', 'http://example.com/wp-includes/js/comment-reply.js', false, false);
wp_enqueue_script( 'comment-reply' );
//Re-register quicktags script
wp_deregister_script('quicktags');
wp_register_script('quicktags', 'http://example.com/wp-includes/js/quicktags.js', false, false, true);
wp_localize_script( 'quicktags', 'quicktagsL10n', array(
'wordLookup' => __('Enter a Word to look up:'),
'dictionaryLookup' => esc_attr(__('Dictionary lookup')),
'lookup' => esc_attr(__('lookup')),
'closeAllOpenTags' => esc_attr(__('Close all open tags')),
'closeTags' => esc_attr(__('close tags')),
'enterURL' => __('Enter the URL'),
'enterImageURL' => __('Enter the URL of the image'),
'enterImageDescription' => __('Enter a description of the image'),
'fullscreen' => __('fullscreen'),
'toggleFullscreen' => esc_attr( __('Toggle fullscreen mode') ),
'textdirection' => esc_attr( __('text direction') ),
'toggleTextdirection' => esc_attr( __('Toggle Editor Text Direction') )
));
wp_enqueue_script( 'quicktags' );
}
En ce qui concerne le code utilisé dans wp_localize_script, je l’ai obtenu directement du tronc (vous pouvez également l’obtenir pour votre version WP, pour Par exemple, pour WP 3.4, le lien serait http://core.svn.wordpress.org/tags/3.4/wp-includes/media.php
).
FAQ: Pourquoi quicktags.js est-il d'abord chargé dans le système frontal? Parce que j'utilise le plugin - Basic Quicktags Comment
Je sais que la question est très ancienne, mais je pense que certains fans de WordPress l’attireront peut-être encore. Jusqu’à présent, WordPress n’avait pas mis en place de moyen de définir "WP_INCLUDES_URL" comme on peut définir "WP_CONTENT_URL".
Voici donc une solution de contournement simple, qui ferait l'affaire pour les scripts chargés à partir de wp-includes, en utilisant le filtre "script_loader_src":
function filter_wpincludes( $src, $handle ) {
$src = str_replace(site_url("/wp-includes"), "https://static.example.com/wp-includes", $src);
return $src;
};
// then just add the filter
add_filter( 'script_loader_src', 'filter_wpincludes', 10, 2 );
Bien sûr, ce code appartient à votre functions.php dans votre thème. Ce filtre s’exécute sur chaque script chargé par WordPress, puis la fonction remplace l’ancien domaine par le nouveau.
Dans le code ci-dessus, le lien suivant:
http://mywebsite.com/wp-includes/js/comment-reply.js
Sera remplacé par ce lien:
https://static.example.com/wp-includes/js/comment-reply.js