Im Moment ist alles, was in wp_head enthalten ist, in der Codeansicht vollständig rechtsbündig.
Während mein ganzer anderer Code, der um das wp_head ist, zweimal eingerückt (tabbed) wird. Ist es möglich, allen wp_head-Informationen einen Einzug/Tabulator hinzuzufügen?
Vielen Dank
Ein besserer Weg, um das Einrücken von Zeilen zu vermeiden, die bereits eingerückt sind
function indented_wp_head(){
ob_start();
wp_head();
$header = ob_get_contents();
ob_end_clean();
echo preg_replace("/\n</", "\n\t<", substr($header, 0, -1));
echo "\n";
}
Technisch möglich, aber wahrscheinlich nicht die Mühe wert (und Overhead). Wenn Sie die Quelle mit Developer Tools in Chrome untersuchen, wird Ihr HTML-Code automatisch eingerückt. In der Tat entfernen einige Caching-Plugins (wie W3 Total Cache) sogar alle Leerzeichen, um die Ladezeiten für Seiten zu verbessern.
Das heißt, wenn Sie sicherstellen möchten, dass Ihr wp_head
-Inhalt eingerückt ist, müssen Sie Folgendes tun:
get_header
eine Funktion hinzu, die zuletzt ausgeführt wird. Mit dieser Funktion werden alle Funktionen an wp_head
angehängt (mithilfe von $wp_filter['wp_head']
), entfernt und mit Ihrer eigenen benutzerdefinierten Aktion (z. B. my_wp_head
) erneut verknüpft.my_wp_head() for example
) sollte dann an wp_head
angehängt werdenmy_wp_head()
möchten Sie $patterns = array("pattern"=>"replace pattern");
). Dieses Muster sollte Leerzeichen abschneiden und Tabulatoren am Anfang jeder Zeile neu hinzufügen.ob_start()
auf, um die Ausgabe zu erfassenwp_head
-Funktionen, indem Sie do_action('my_wp_head')
aufrufen.echo preg_replace( array_keys($patterns), array_values($patterns), ob_get_clean() );
verarbeitenSie können es lösen, indem Sie eine benutzerdefinierte Funktion in "functions.php" erstellen:
function indented_wp_head(){
ob_start();
wp_head();
$header = ob_get_contents();
ob_end_clean();
echo preg_replace("/\n/", "\n\t", substr($header, 0, -1));
echo "\n";
}
Jetzt musst du nur noch diese Funktion in der "header.php" aufrufen:
<head>
<!-- ... -->
<?php indented_wp_head() ?>
</head>
Wenn Sie es auch für wp_footer()
verwenden möchten, können Sie diese Funktion für den allgemeinen Gebrauch in "functions.php" erstellen:
/**
* Indents the output of
* a function
*
* @return void
*/
if (! function_exists("print_indented")) {
function print_indented($fn)
{
ob_start();
call_user_func($fn);
$html = ob_get_contents();
ob_end_clean();
echo preg_replace("/\n/", "\n\t", substr($html, 0, - 1));
echo "\n";
}
}
Und nenne es in "header.php" oder "footer.php" wie
<?php print_indented("wp_footer") ?>
<?php print_indented("wp_head") ?>
Ergänzend können wir die Anzahl der Registerkarten für HTML-Blöcke angeben, die mehr als eine Registerkarte benötigen, und Parameter für die Funktionen verwenden.
function add_indented($fn, $num_tabs=1, $params=null){
ob_start();
call_user_func($fn, $params);
$html = ob_get_contents();
ob_end_clean();
$tabs="";
for ($i=0 ; $i<$num_tabs ; $i++) $tabs.="\t";
echo preg_replace("/\n/", "\n" . $tabs, substr($html, 0, - 1));
echo "\n";
}
Vor
<?php wp_head(); ?>
<?php wp_footer(); ?>
<?php get_template_part('template-parts/content','home'); ?>
Nach dem:
<?php print_indented("wp_head"); ?>
<?php print_indented("wp_footer"); ?>
<!-- Add 4 tabs -->
<?php print_indented('get_template_part', 4,'template-parts/content', 'home'); ?>
Verwenden Sie http://wordpress.org/plugins/wp-minify/ . Es wird CSS, Js und HTML zusammenführen und unnötige Kommentare entfernen. Ihre Seitengeschwindigkeit wird verbessert und der gesamte HTML-Code in der Quelle wird komprimiert.
Problem gelöst, denke ich!