Ich muss die Registrierung dieses Enqueue-Stils von wp_footer () aufheben und ihn mit hook wp_head () zum Anfang der Site hinzufügen. Ist dies möglich?
Ich optimiere mein Theme für die Validierung in W3C und eine der Anforderungen von W3C ist, dass alle Stile innerhalb des Tags <head></head>
liegen. Ich verwende ein bestimmtes Plugin mit dem Namen Crayon Syntax Highlighter
und dieses Plugin fügt einen Stil am Ende von ein die Seite (wahrscheinlich mit wp_footer()
hook).
Der Name/die ID des Skripts ist crayon
:
Ich habe alle diese Funktionen ausprobiert, aber keinen Erfolg:
wp_deregister_style( 'crayon' );
wp_dequeue_style( 'crayon' );
remove_action( 'wp_enqueue_style' , 'crayon' , 10 );
wp_deregister_style( 'crayon-css' );
wp_dequeue_style( 'crayon-css' );
remove_action( 'wp_enqueue_style' , 'crayon-css' , 10 );
Wenn Sie sich den Quellcode ansehen, können Sie sehen, dass wp_enqueue_style( 'crayon' )
in Crayon::enqueue_resources()
aufgerufen wird, das selbst entweder von Crayon::the_content()
oder von Crayon::wp_head()
aufgerufen wird. Der Code in Crayon::wp_head
lautet:
if (!CrayonGlobalSettings::val(CrayonSettings::EFFICIENT_ENQUEUE) || CrayonGlobalSettings::val(CrayonSettings::TAG_EDITOR_FRONT)) {
CrayonLog::debug('head: force enqueue');
// Efficient enqueuing disabled, always load despite enqueuing or not in the_post
self::enqueue_resources();
}
Damit wird der Stil nur dann in die Warteschlange gestellt, wenn bestimmte Einstellungen aktiviert sind. Andernfalls wird der Stil nur aus dem the_content
-Filter in die Warteschlange gestellt, der ausgelöst wird, nachdem wp_head
bereits ausgegeben wurde.
Sie haben also zwei Möglichkeiten:
Hmmmm .. die Frage ist mir nicht sehr klar, wenn Sie ein wenig mehr Informationen über Ihr Problem (wie die spezifischen Dateien und Skripte, die Sie ändern müssen) zur Verfügung stellen könnten, wäre toll. Soweit ich verstanden habe, werde ich versuchen, Ihnen zu helfen. Vermeiden Sie zunächst Plugins, es sei denn, Sie benötigen sie wirklich wirklich. Möglicherweise versuchen Sie, JavaScript und CSS, die das Rendern blockieren, aus dem Tag zu entfernen. Wenn Sie eine Seite über Ihren Browser laden, laden Sie zunächst die Skripte zwischen den Tags herunter, indem Sie diese Skripte in Ihre Fußzeile verschieben ( footer.php oder /public_html/wp-content/themes/yourtheme/footer.php) Die Webseite rendert alle Daten, die zuerst visualisiert werden müssen, beginnend am oberen Rand der Seite und zuletzt die Skripte in der Fußzeile .php Datei. Ich wette, Crayon Syntax Highlighter
verursacht das Problem. Versuchen Sie einfach, diesen <!-- W3TC-include-js-head -->
vor das schließende </body>
-Tag zu setzen.
Wenn Sie wp_enqueue_scripts
verwenden möchten, sehen Sie sich dieses Beispiel an
function themeslug_enqueue_style() {
wp_enqueue_style( 'core', 'style.css', false );
}
function themeslug_enqueue_script() {
wp_enqueue_script( 'my-js', 'filename.js', false );
}
add_action( 'wp_enqueue_scripts', 'themeslug_enqueue_style' );
add_action( 'wp_enqueue_scripts', 'themeslug_enqueue_script' );
Ich hoffe das hilft, viel Glück Alter. :)