PHP und HTML gemeinsam auskommentieren: So geht es richtig

In WordPress-Themes und anderen PHP-Dateien stehen häufig PHP und HTML gemischt. Einen solchen Abschnitt vorübergehend zu deaktivieren ist etwas heikler als reinen HTML- oder PHP-Code auszukommentieren.

Wichtig: Ein HTML-Kommentar stoppt PHP nicht

Diese Schreibweise reicht nicht, wenn im Block PHP enthalten ist:

<!--
  <?php do_something(); ?>
-->

Der Grund: PHP wird auf dem Server verarbeitet, bevor das erzeugte HTML beim Browser ankommt. Der PHP-Code innerhalb des HTML-Kommentars wird deshalb weiterhin ausgeführt. Nur seine HTML-Ausgabe kann anschließend im Browser-Kommentar verborgen sein. Funktionen mit Nebenwirkungen – Datenbankänderungen, Includes, API-Aufrufe usw. – laufen trotzdem.

Gemischten PHP-/HTML-Block wirklich deaktivieren

Für einen temporären Test kannst du einen gemischten Bereich mit einer PHP-Bedingung überspringen:

<?php if ( false ) : ?>
  <div>
    Dieser HTML-Teil wird nicht ausgegeben.
    <?php echo 'Auch dieser PHP-Zweig wird nicht ausgeführt'; ?>
  </div>
<?php endif; ?>

PHP unterstützt diese alternative Syntax ausdrücklich für Templates mit gemischtem HTML/PHP. Der Code muss syntaktisch weiterhin korrekt sein, der Inhalt des falschen Zweigs wird aber nicht ausgeführt beziehungsweise ausgegeben.

Reinen PHP-Code kommentieren

Innerhalb eines PHP-Blocks stehen die normalen Kommentararten zur Verfügung:

<?php
// einzeiliger Kommentar
# ebenfalls einzeilig
/* mehrzeiliger
   Kommentar */
?>

Mehrzeilige /* ... */-Kommentare dürfen nicht beliebig ineinander verschachtelt werden.

WordPress-Hinweis

Änderungen an Theme-Dateien solltest du möglichst in einem Child Theme beziehungsweise unter Versionskontrolle vornehmen. Ein Theme-Update kann direkte Änderungen am Parent Theme überschreiben. Für einen längeren Stilllegungszeitraum ist es meist besser, den betreffenden Template-Code sauber zu entfernen oder über eine nachvollziehbare Bedingung/Funktion zu steuern.