Pour le moment, tout ce qui est inclus dans wp_head est entièrement justifié dans la vue code.
Considérant que tout mon autre code qui est autour du wp_head est indenté (tabulé) deux fois. Est-il possible d'ajouter un retrait/des tabulations à toutes les informations de wp_head?
Merci
Une meilleure façon d'éviter les lignes indentées qui sont déjà indentées et que certains semblent être
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";
}
Techniquement, probablement, mais ne vaut probablement pas la peine (et les frais généraux). Si vous inspectez le code source avec quelque chose comme les outils de développement dans Chrome, votre code HTML sera automatiquement mis en retrait. En fait, certains plugins de mise en cache (comme W3 Total Cache) suppriment même tous les espaces pour améliorer les temps de chargement des pages.
Cela dit, si vous voulez vous assurer que votre contenu wp_head
est en retrait, vous devez procéder comme suit:
get_header
qui s’exécute en dernier. Cette fonction récupère toutes les fonctions attachées à wp_head
(à l'aide de $wp_filter['wp_head']
), les supprime et les rattache à votre propre action personnalisée (my_wp_head
par exemple).my_wp_head() for example
) devrait alors être attachée à wp_head
my_wp_head()
, vous voudriez $patterns = array("pattern"=>"replace pattern");
). Ce modèle doit rogner les espaces et rajouter des tabulations au début de chaque ligne.ob_start()
pour capturer la sortiewp_head
précédentes en appelant do_action('my_wp_head')
echo preg_replace( array_keys($patterns), array_values($patterns), ob_get_clean() );
Vous pouvez le résoudre en créant une fonction personnalisée dans "functions.php":
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";
}
Il ne reste plus qu’à appeler cette fonction dans le "header.php":
<head>
<!-- ... -->
<?php indented_wp_head() ?>
</head>
Si vous souhaitez également l'utiliser pour wp_footer()
, vous pouvez créer cette fonction à usage général dans "functions.php":
/**
* 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";
}
}
Et appelez-le dans "header.php" ou "footer.php" comme
<?php print_indented("wp_footer") ?>
<?php print_indented("wp_head") ?>
En tant qu'additions, nous pouvons spécifier le nombre d'onglets pour les blocs HTML nécessitant plus d'un onglet et utiliser des paramètres pour les fonctions.
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";
}
Avant
<?php wp_head(); ?>
<?php wp_footer(); ?>
<?php get_template_part('template-parts/content','home'); ?>
Après:
<?php print_indented("wp_head"); ?>
<?php print_indented("wp_footer"); ?>
<!-- Add 4 tabs -->
<?php print_indented('get_template_part', 4,'template-parts/content', 'home'); ?>
Utilisez http://wordpress.org/plugins/wp-minify/ . Il va fusionner css, js & html + supprimer les commentaires inutiles. La vitesse de votre page sera améliorée et tout le code HTML de la source sera compacté.
Problème résolu, je suppose!