wake-up-neo.com

Einrücken (Tabulator) von WP_head

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

2
mr. x

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";
}
2
Michael

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:

  1. Fügen Sie 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.
  2. Eine benutzerdefinierte Funktion (my_wp_head() for example) sollte dann an wp_head angehängt werden
  3. In der Funktion my_wp_head() möchten Sie
    1. Erstellen Sie ein Array mit Regex-Mustern zum Abgleichen/Ersetzen ($patterns = array("pattern"=>"replace pattern");). Dieses Muster sollte Leerzeichen abschneiden und Tabulatoren am Anfang jeder Zeile neu hinzufügen.
    2. Rufen Sie ob_start() auf, um die Ausgabe zu erfassen
    3. Verarbeiten Sie die vorherigen wp_head-Funktionen, indem Sie do_action('my_wp_head') aufrufen.
    4. Ausgabe mit einem Aufruf von echo preg_replace( array_keys($patterns), array_values($patterns), ob_get_clean() ); verarbeiten
2
doublesharp

Sie 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") ?>
1
dude

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'); ?>
0
xechino

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!

0
hawkidoki