FAQ-Seite erstellen
Aktuell wird der Seitentyp FAQ samt Einträgen nocht nicht angezeigt.
Sie müssen dafür eine Archivseite erstellen, die alle FAQ auflistet

Archivseite  archive-faq.php

Durch das Anhängen von -faq weiss WordPress, dass es bei FAQ diese Datei
wählen soll.

 


archive-faq.php

<!--  Header einbinden  -->
<?php get_header(); ?>

<!--  <h1>-Überschrift  -->
<h1>Häufig gestellte Fragen (FAQ)</h1>

<!--
Benutzerdefinierte Query (Abfrage) an die Datenbank  
query_posts              = gibt alle Beiträge aus
post_type=faq          = Nur Ausgabe mit dem Seitentyp -faq
post_status=publish   = Ausgabe von nur veröffentlichten Beiträgen
showposts=-1           = Keine Beschränkung, wieviel Beiträge pro Seite
-->
<?php query_posts('post_type=faq&post_status=publish&showposts=-1'); ?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

<div class="faq">

      <h2><a href="/<?php the_permalink(); ?>" title="Lesen Sie &quot;<?php the_title(); ?>&quot;
      vollständig">            <?php the_title(); ?></a>
      </h2>


      <?php the_content(); ?>

</div>

<!--  wp_reset_query = Die Query (Abfrage) wird zurückgesetzt  -->
<?php endwhile; wp_reset_query(); ?>

<!--  Footer einbinden  -->
<?php get_footer(); ?>


FAQ-Seite erstellen
Eine Einzelansicht für jede Frage programmieren, da Sie sonst die Übersicht verlieren.
Die Antworten, wenn sie länger sind, können Sie mit Weiterlsen (MORE) verkürzen.
Dies erreichen Sie mit der Datei  single-faq.php  mit dem unten stehenden Code.


single-faq.php

<!--  Header einbinden  -->
<?php get_header(); ?>

 <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

          <h1>Frage: <?php the_title(); ?></h1>
          <p><strong>Antwort:</strong></p>
          <?php the_content(); ?>

<?php endwhile; ?>

<!--  Footer einbinden  -->
<?php get_footer(); ?>


Seitentyp FAQ registrieren
In die functions.php wird folgender Code für den Seitentyp FAQ eingefügt:

<?php

function register_my_menus() {
register_nav_menus(
array( 'header-menu' => __( 'Header Menu' ), 'footer-menu' => __( 'Footer Menu' ))
);
}

// Seitentyp wird registriert
add_action( 'init', 'register_my_menus' );


// Custom Post Type FAQ

add_action( 'init', 'add_cpt_faq' );

function add_cpt_faq() {


  

// Labels-Array

$labels = array(

'name' => _x('FAQ', 'post type general name'),   // Name  des Seitentyps
'singular_name' => _x('FAQ', 'post type singular name'),  // Name des Seitentyps, Singular
'add_new' => _x('Hinzufügen', 'faq'),  //Text auf dem Hinzufügen-Button
'add_new_item' => __('Neue FAQ hinzufügen'), // Titel der Seite, auf der ein neuer Eintrag hinzugefügt wird
'edit_item' => __('FAQ bearbeiten'), // Link-Text für das Bearbeiten von Einträgen
'new_item' => __('Neue FAQ'),  // Bezeichnung eines neuen Eintrages, ohne Verb
'view_item' => __('FAQ ansehen'),  // Link Text für das Ansehen eines Eintrages
'search_items' => __('Nach FAQ suchen'), // Text für den Suchen-Button
'not_found' => __('Keine FAQ gefunden'),  // Text, wenn keine Einträge gefunden wurden
'not_found_in_trash' => __('Keine FAQ im Papierkorb')  // Text, wenn im Papierkorb keine Einträge

);

 

// $supports-Array

$supports = array(

'title',      // Titel für die Frage
'editor',   // Text-Editor

);

 


 

// $args-Array

$args = array(

'labels' => $labels,   // Einbinden $labels-Arrays

// public =Standardwerte für Parameter: Show_ui.publicity_queryable, exclude_from_search, show_in_menu
'public' => true,  

'publicly_queryable' => true,  //Seitentyp aus Frontend über Query ansprechen
'show_ui' => true,                  //Seitentyp aus dem Backend ansprechend und konfigurieren
'_builtin' => false,                  // Ist Seitentyp fest in WordPress integriert
'show_in_menu' => true,       // Seitentyp im Menü des Backend anzeigen
'query_var' => true,               // false = keine Querys durch das Frontend erlauben
'rewrite' => array("slug" => "faq", "with_front" => false),  // Aussehen des Permalinks des Seitentyps
'capability_type' => 'post',     // Rechte für diesen Seitentyp
'hierarchical' => false,            // Kann Seitentyp über- und untergeordnete Einträge haben
'has_archive' => true,            // Seite, auf der alle Einträge eines Seitentyps angezeigt werden.
'menu_position' => 20,         // Position der Anzeige des Seitentyps im Menü  (20 = nach Seiten)
'supports' => $supports         // Einbinden des $supports-Arrays
);

// Registrierung des Seitentyps
register_post_type('faq', $args);


}

?>


 

Ansicht Frontend