web-dev-qa-db-fra.com

Meilleure façon de savoir quel fichier php a généré une ligne de code HTML dans WordPress

En utilisant Chrome, vous pouvez cliquer avec le bouton droit de la souris sur - Inspecter un élément pour afficher le code html derrière cet élément:

Chrome inspect element example

Je me demande comment trouver quel fichier php a généré ce code HTML. Peut-être y at-il un outil pour mettre un point d'arrêt dans le code HTML afin que le serveur php s'arrête lorsqu'il tente de le générer à nouveau?

J'utilise WordPress localement. Je suis sur Ubuntu 14.04LMS. J'utilise Sublime Text 3 avec XDebug.


MISE À JOUR 1

Un plugin WordPress capable de mettre dans chaque fichier quelque chose comme ce qui suit serait une bonne solution (je pense du point de vue de mon débutant):

echo '<!-- name_of_the_php_file.php -->';
17
chelder

Utilisez ce plugin " ce que le fichier " pour trouver le fichier php. Reste ensuite à rechercher une fonction ou autre chose par CTRL + F dans n’importe quel éditeur.

Je souhaite ajouter un plugin supplémentaire qui n’est pas exactement conçu à cet effet mais qui est très populaire parmi les développeurs WordPress et résout très bien ce problème. Le plugin est Moniteur de requêtes .

15
Rituparna sonowal

Insérez un écho dans vos pages PHP pour afficher leur nom dans un commentaire HTML en fonction de la définition d'une variable de session. Puis définissez cette variable de session et profitez-en.

if(isset($_SESSION['printPageName']) && $_SESSION['printPageName']=='true')
{
   echo '<!-- ' . $_SERVER['PHP_SELF'] . ' -->';
}

La raison pour laquelle je dis d'utiliser une variable de session est que vous pouvez créer un mécanisme permettant de l'examiner à des fins de débogage, mais que les utilisateurs ne rencontrent pas normalement.

5
developerwjk

Malheureusement, avec Wordpress, vous devez creuser un peu:

  1. Est-ce une page/post/post personnalisé (c'est-à-dire que vous pouvez trouver la page dans la section admin et la modifier)
  2. Si oui, recherchez le modèle attribué (les articles ne comportent généralement pas de champ de sélection de modèle à moins que du code personnalisé ne soit ajouté) et recherchez le modèle de page correspondant dans votre thème (page-what.php) le champ déroulant, mais dans ses notes, il aura le nom que vous voyez), ou si vous postez un message que vous recherchez pour single.php ou si un article personnalisé recherche un seul -queque.php.
  3. Ce qui précède est la valeur par défaut et couvrira 60% des situations. Mais si vous ajoutez un plugin et qu'il ajoute de nouvelles pages, le modèle de page sera dans le plugin et le vrai plaisir commence. 
  4. Si un plugin est développé avec des mods utilisateur à l’esprit, il devrait avoir ses pages dans 1 emplacement ou dans un dossier de jeu fonctionnel. Recherchez les fichiers ci-dessus à ces emplacements s'ils existent ou dans les dossiers du plugin général. 
  5. Si toujours pas de chance, jetez un oeil à add_action('save_post', 'whatever'); il peut y avoir un code indiquant return $template, ce sera probablement aussi le type de poste dans la fonction. Cherchez le chemin son appel
  6. Une autre façon d’ajouter une page consiste à réécrire l’URL (recherchez dans les fichiers pour réécrire). Il contiendra un chemin quelque part dans le fichier (il existe plusieurs méthodes pour le faire, donc cherchez-les pour pouvoir les reconnaître). 

Si vous pensez avoir trouvé le bon modèle, essayez un écho pour voir s'il apparaît à l'écran. Si oui, vous avez trouvé le modèle, regardez ce que vous avez suivi pour inclure les fichiers .php, vous trouverez votre code HTML quelque part en tant que code html ou php créant du code html. 

j'espère que vous trouverez ce que vous cherchez, mais il n'y a pas vraiment de règles et d'autres méthodes peuvent exister, y compris les réécritures htaccess pour pointer sur un fichier php, etc. ou un fichier de fonctions créant des pages à la volée

Cela peut être un bon point à mentionner si vous créez un plugin complet, stockez des fichiers de manière logique et incluez-le à partir d'un fichier de contrôleur ou de plugin. Stockez les pages dans un dossier afin de les retrouver facilement. 

Bonne chance!

update: filtre le chemin de sortie sur les fichiers de modèle

add_filter( 'template_include', 'show_path', 99 );

function show_path( $template ) {

            if($template):
                echo $template;
            else:
                echo "template path not found";
            endif;

    return $template;
}
5
David

Commencez par sauvegarder un site Web entier, supposez/my-website

1.Cliquez à droite sur l'élément pour lequel vous voulez trouver le code php

2.Cope CLASS ou sélecteur d'identifiant de cette ligne

3. Recherchez le sélecteur de classe ou d'identifiant dans l'éditeur situé dans le dossier/my-website, cet éditeur de Notepad ++ et Dreamweaver est préférable.

1
jay.jivani

Code de début de page

<?php
ob_start();
?>

Contenu HTML

...
...

<sapan>Original text</span>

....
...

code de fin de page.

<?php
/*    get and delete current buffer      &&  start a new buffer */
if ((($html = ob_get_clean()) !== false) && (ob_start() === true))
{
    echo preg_replace('~<sapan>Original text</span>~i', '<!-- name_of_the_php_file.php -->', $html, 1);
}
?>

Note: Sory, mon anglais n'est pas bon.

1
Buse Gönen

J'espère trouver ce plugin utile. utiliser pour rechercher dans les fichiers AMD perdre suffisamment de temps. Aussi, j'utilise What the file plugin comme suggéré précédemment, c'est un excellent moyen. Mais je pense que combiner le localisateur de cordes vous procurera un plaisir supplémentaire! Localisateur de chaîne

1
StefanoWP

Une autre possibilité serait de copier un identifiant ou une classe à partir du code HTML. Recherchez ensuite cette chaîne dans le code source de l'application Web WordPress afin de placer un point d'arrêt à chaque endroit où la chaîne apparaît. 

Cependant, la chaîne pourrait être dans la base de données. Dans ce cas, cette méthode ne fonctionnera pas.

1
chelder

Toutes les données ne sont pas stockées dans des fichiers HTML ou PHP dans Wordpress.

Il est possible que la chaîne recherchée provienne de la base de données puisque wordpress utilise une base de données pour stocker des données variables.

Veuillez rechercher dans la base de données également

0
KawaiKx