Webseite ohne Header und Footer erstellen

Frage: Kann ich mit WordPress eine Webseite ohne Header und Footer erstellen?

Header und Footer bestehen nicht nur aus den sichtbaren Inhalten – also z.B. Titelbild, Navigation und Meta-Angaben im Header und häufig einem Link zum Impressum (das von jeder Webseite aus erreichbar sein muss, vgl. Impressumpflicht, im Footer) –, sondern auch aus den Tags <html>, <head> und <body> sowie Hooks, über die JavaScript und Stylesheets platziert werden.

Die Lösung ist, in einem Child Theme drei weitere Templates zu erstellen:

  1. Ein Template page-weisse-seite.php für den Inhalt einer statischen Seite mit Slug weisse-seite,
  2. ein eigenes Header-Template, das eine leere Kopfzeile ausgibt, aber notwendigen Hook zur Verfügung stellt sowie
  3. ein eigenes Footer-Template, das eine leere Fußzeile ausgibt, aber den notwendigen Hook zur Verfügung stellen.

Das würde dann (vereinfacht) so aussehen:

<?php
/* Template page-weisse-seite.php */

get_header('weisse-seite'); //ruft das Header-Template auf!

// Die Loop
while ( have_posts() ) : the_post();
  the_title( '<h1 class="entry-title">', '</h1>' );
  the_content();

  if ( comments_open() || get_comments_number() ) :
  comments_template();
  endif;

// Ende der Loop.
endwhile;

get_footer(); // ruft das Footer-Template auf!

Dazu der Header:

/* Template header-weisse-seite.php */
<!DOCTYPE html>
<html <?php language_attributes(); ?> class="no-js">
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<?php wp_head(); ?> <!-- Hook für JavaScript, Stylesheets, etc.! -->
</head>
<body <?php body_class(); ?>> <!-- gibt CSS-Klasse für die Seite aus! -->

und auch noch der Footer:

<?php wp_footer(); ?> <!-- Hook für JavaScript, Print-Stylesheet, etc.! -->

</body>
</html>

Durch die Hooks wird u.a. das Stylesheet des Parent Themes ganz normal geladen. Für die CSS-Klasse, die WordPress mit Hilfe von body_class() im body-Tag ausgibt (z.B. .page-id-42) kann noch eine abweichende CSS-Regeln hinzugefügt werden:

body.page-id-42 { background: #fff; }