it-swarm.com.de

Wird Javascript mit wp-Includes (Front-End) aus einer anderen Domain bereitgestellt?

Der WordPress-Codex zeigt auf eine äußerst einfache Art und Weise, wie Sie die URL des Verzeichnisses wp-content ändern können. php:

define( 'WP_CONTENT_URL', 'http://example.com/wp-content');

Und das erledigt die Aufgabe, die meisten JavaScript- und CSS-Dateien auf meiner Website von einer anderen Domain aus zu bedienen, mit Ausnahme von zwei.

http://mywebsite.com/wp-includes/js/comment-reply.js
http://mywebsite.com/wp-includes/js/quicktags.js

Der Grund liegt auf der Hand - diese JavaScript-Dateien werden aus dem Verzeichnis wp-includes bereitgestellt, das von der oben genannten Regel nicht betroffen ist.

Gibt es also eine ähnliche oder einfache Methode, um sie von example.com, d. H. Der Domain meiner Wahl, bedienen zu lassen? oder ist das Aufheben der Registrierung und das Einreihen der Skripte in eine Warteschlange über eine benutzerdefinierte URL (in functions.php) der einzige Weg?

2
its_me

Okay, ich habe zahlreiche (buchstäblich) Codes und Methoden ausprobiert und bin kläglich gescheitert. Wie ich in der Frage bereits sagte, scheint der einzig sichere Weg die erneute Registrierung (Aufheben der Registrierung und Einreihen in die Warteschlange) der Skripte zu sein.

Die Skripte:

http://mywebsite.com/wp-includes/js/comment-reply.js
http://mywebsite.com/wp-includes/js/quicktags.js

Sollte serviert werden von:

http://example.com/wp-includes/js/comment-reply.js
http://example.com/wp-includes/js/quicktags.js

Code in 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' );

}

Was den in wp_localize_script verwendeten Code betrifft, habe ich ihn direkt aus trunk erhalten (Sie können ihn auch für Ihre WP -Version erhalten, z Beispiel: Für WP 3.4 wäre der Link http://core.svn.wordpress.org/tags/3.4/wp-includes/media.php).


FAQ: Warum wird quicktags.js zuerst im Frontend geladen? Weil ich das Plugin verwende - Basic Comment Quicktags

2
its_me

Ich weiß, dass die Frage sehr alt ist, aber ich denke, dass sie immer noch die Aufmerksamkeit einiger WordPress-Fans auf sich zieht. Bisher hat WordPress keine Möglichkeit implementiert, "WP_INCLUDES_URL" wie "WP_CONTENT_URL" zu definieren.

Hier ist eine einfache Problemumgehung, die den Trick für Skripte ausführen würde, die mit dem Filter "script_loader_src" aus wp-includes geladen wurden:

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 ); 

Natürlich gehört dieser Code zu Ihrer functions.php in Ihrem Theme. Dieser Filter wird für jedes Skript ausgeführt, das von WordPress geladen wird. Anschließend ersetzt die Funktion die alte Domäne durch die neue.

Im obigen Code der folgende Link:

 http://mywebsite.com/wp-includes/js/comment-reply.js

Wird durch diesen Link ersetzt:

 https://static.example.com/wp-includes/js/comment-reply.js
0
asakka