Support » Allgemeine Fragen » Seitentyp für Statische Seite

  • Hi
    Ich versuche mich gerade am Erstellen eines Seitentypes für statische Seiten (Workshops)
    Wenn ich mich am Buch von Hetzel (WordPress 4) orientiere, oder an dem was ich Internet finde, bekomme ich immer eine Art „Beitragsseite“ die dann so aussieht:
    Workshopseite, die aussieht wie ein Beitrag
    Ich möchte aber eine Seite, die so aussieht:
    So sollte es aussehen

    … also eine Art „Vorlage“, wo ich im Backend Datenfleder habe, die mit …
    Modul (Art des Workshops) (Hier Basic 3)
    Datum
    Ort
    Leitung
    Zeit
    Inhalte
    Unterkunftkontakt
    Zusatzinfo

    …. die Informationen in die Seite bringen.

    Eine NEU angelegte Workshopseite soll eben KEIN Post/Beitrag sein, der dann unterhalb erscheint, sondern eine eigne Seite in DIESEM Style und einem eigenen Permalink…

    Wie geht das 😎

    Beste Grüße
    Worels

    • Dieses Thema wurde geändert vor 6 Jahren, 3 Monaten von worels.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Mit „Seitentyp“ meinst du eine eigene Inhaltsart (Custom Post Type)?

    Wie der Inhalt eines Custom Post Type ausgegeben wird, hängt vom gewählten Template ab. Wenn du die Ausgabe einer einzelnen Seite des Post Type „workshop“ gestalten willst, kannst du ein Plugin single-workshop.php erstellen, für eine Auflistung aller Beiträge dieser Beitragsart wählst du ein Archiv archive-workshop.php. Ob sich Custom Post Types wie eine Seite oder wie ein Beitrag verhalten, hängt davon ab, ob du in der Funktion register_post_type den Parameter hierarchical auf true setzt, also Unterseiten erlaubt sind (die gibt es bei Beiträgen nicht).

    Für den Einstieg ist es leichter, wenn du ein Plugin wie Custom Post Type UI verwendest, dass sich nicht negativ auf die Performance deiner Website auswirkt, dich aber bei der Erstellung des Post Type „an die Hand nimmt“ (die Funktionen sind mit Beschriftungen versehen, die es verständlicher machen).

    Ort, Leitung, Zeit, Kontakt, Preis, Schuhgröße, Farbe, … sind Meta-Informationen, die in WordPress als sogenannte Custom Fields (eigene Felder) hinzugefügt werden können. Hier macht es dir das Plugin Advanced Custom Fields einfacher, das eine sehr hübsche Dokumentation hat, aus der du auch entnehmen kannst, wie du die Felder in dein Template einbaust.

    Thread-Starter worels

    (@worels)

    Hi @pixolin
    Ich weiß schon, dass ich alles über Plugins realisieren könnte, aber ich will das Ding verstehen und da ist so einiges unklar 😉

    Jetzt mal abgesehen davon, dass ich ein Plugin erstellen KÖNNTE (Was ich noch nicht kann, mich aber als nächstes beschäftigen wird ..)

    Versuche ich zu verstehen, was vorgeht.
    Ich hab’s mal soweit hinbekommen, dass ich eine funktionierende Funktion (Noch ohne Datenfelder) in der functions.php hinbekommen habe …

    <?php
    // Exit if accessed directly
    if ( !defined( 'ABSPATH' ) ) exit;
    
    // BEGIN ENQUEUE PARENT ACTION
    // AUTO GENERATED - Do not modify or remove comment markers above or below:
    
    if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
        function chld_thm_cfg_parent_css() {
            wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array(  ) );
        }
    endif;
    add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );
    
    // END ENQUEUE PARENT ACTION
    
    add_action( 'init', 'workshop_custom_content_type');
    
    function workshop_custom_content_type() {
    $labels = array(
     'name'               => 'Workshopseite',
     'singular_name'      => 'Workshopseite',
     'menu_name'          => 'Workshopseiten',
     'name_admin_bar'     => 'Workshopseite'
    );
    
    $args = array(
     'labels'              => $labels,
     'public'              => true,
     'exclude_from_search' => false,
     'publicly_queryable'  => true,
     'show_ui'             => true,
     'show_in_nav_menus'   => true,
     'show_in_menu'        => true,
     'show_in_admin_bar'   => true,
     'menu_position'       => 20,
     'capability_type'     => 'post',
     'hierarchical'        => true,
     'supports'            => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'revisions' ),
     'has_archive'         => false,
     'rewrite'             => array( 'slug' => 'workshopseite' ),
     'query_var'           => true
     );
    
    register_post_type('workshopseite', $args );
    
     // flush_rewrite_rules();
     }
    

    Dann eine single-workshopseite.php erstellt habe …

    <link rel='stylesheet' id='wspage-css' href='http://lustvollleben.at/wp-content/themes/lustvollleben-admiral-child/wspage.css' type='text/css' media='all' />
    <?php get_header(); ?>
    	<section id="primary" class="content-single content-area">
    		<main id="main" class="site-main" role="main">
    <div style="display: flex; align-items: center; justify-content: center; margin-top: 2em; height: 13.6em; width: auto;"><img class="alignnone size-full wp-image-176" src="http://lustvollleben.at/wp-content/uploads/2018/01/wsb1headline.png" alt="" width="auto" height="13.6em" /></div>
    
    <div style="float: left; width: 14%;"><img class="alignnone size-full wp-image-179" src="http://lustvollleben.at/wp-content/uploads/2018/01/wsb1left.png" alt="" width="auto" height="65.2em" /></div>
    
    <div style="float: right; width: 14%;"><img class="alignnone size-full wp-image-179" style="float: right;" src="http://lustvollleben.at/wp-content/uploads/2018/01/wsb1right.png" alt="" width="auto" height="65.2em" /></div>
    
    <div style="width: 72%; margin-left: 14%; margin-right: 14%;">
    
    <div style="display: flex;flex-direction:column; align-items: center; justify-content: center;">
    <h3><a href="http://www.lustvollleben.at/wsbasic">Modul: Basic 3</a></h3>
    <h2>18.-20. Mai 2018</h2>
    <h1>Ein Wochenende des Werdens</h1>
    
    <?php while ( have_posts() ) : the_post();
    
    				admiral_breadcrumbs();
    
    				get_template_part( 'template-parts/content-page', 'wspage' );
    				
    
    			endwhile; ?>
    			
    			
    
    <img src="http://lustvollleben.at/wp-content/uploads/2018/01/wb1wheel.png" alt="" width="auto" height="20.64em" class="alignnone size-full wp-image-178" />
    <h2>Im Helenental / Heiligenkreuz</h2>
    <h3> (Keine Workshop-Kosten - es handelt sich um Demo/Service)
    <h1>Leitung: Michael Elstner</h1>
    <h2>( Psychotherapeut)</h2>
    (Unverbindliches Informationsgespräch zum Kennenlernen)
    <h3>Beginn: 18.V. 18:00 – Ende 20.V. 13:00</h3>
    &nbsp;
    <h2>Information und Anmeldung unter:</h2>
    <a href="http://www.lustaufleben.at/kontakt.html">KONTAKT</a>
    <h2>Inhalte:</h2>
    <h4>Aufgrund der variablen Manigfaltigkeit, die sich an der Gruppe orientiert, hier nur die Hauptübungen als Gerüst</h4>
    Warmup
    Wechselnde Gruppierungen
    Rücken an Rücken
    Balancieren
    Satuen
    Förderband 2
    Kraftpyramide
    Biodynamics
    Bärenspiel
    4 Directions
    Ein Schritt zur Zeit
    Tor zur Lebendigkeit
    Feuertanz
    Das innere Dorf
    Genie und Idiot
    Überlegen Unterlegen
    Ich will rein
    Ich will - du hast
    Flow
    Schmetterling
    Verborgene Geschichten
    Tunnel of Love
    Erde Luft Feuer Wasser
    Märchen
    Familienwahl
    Herz aus Händen
    <h4>Zimmerreservierungen unter :</h4>
    +43(0)2147 7000 333, Seminarhotel Friedrichshof
    (office@hotel-friedrichshof.com)
    <a href="http://www.hotel-friedrichshof.com/">Seminarhotel Friedrichshof</a>
    
    ACHTUNG !!! - Seminarzugehörigkeit angeben, da wir einen eigenen Preis haben !!!
    
    </div>
    </div>
    
    			
    
    		</main><!-- #main -->
    	</section><!-- #primary -->
    
    	<?php get_sidebar(); ?>
    <?php get_footer(); ?>
    

    Wobei der loop von mir so geändert wurde

    
    <?php while ( have_posts() ) : the_post();
    
    				admiral_breadcrumbs();
    
    				get_template_part( 'template-parts/content-page', 'wspage' );
    				
    
    			endwhile; ?>

    Ursprünglich war meine Auffassung, die Styles würden in wspage.php und wspage.css gehören.
    In der wspage.php hat aber keinerlei html – Anweisung irgendeinen Effekt auf die Custom-Type (Hingegen auf die anderen Seiten, wo das Template über das Backend ausgewählt wurde schon…) …
    also habe ich sie in die single-workshopseite.php geschrieben.
    Jetzt erscheint mir allerdings die Workshopseite – Template (wspage.php) völlig sinnlos (für die Custom-Type), weil ja das Template sowieso die single-workshopseite.php zu sein scheint.

    Das ist, wie man lesen kann verwirrend. Bei einer „ganz normal“ erstellten Seite kann ich das Template auswählen. Im Custom-Type nicht.
    Eine „ganz normal“ erstellte Seite holt sich ihre Informationen aus des wspage.php – die Custom.Type offenbar nicht …
    Wozu schreibe ich dann in die single-workshopseite.php überhaupt:
    get_template_part( 'template-parts/content-page', 'wspage' );
    ?

    Tja … bin verwirrt 🙂

    Beste Grüße
    worels

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Das Thema „Seitentyp für Statische Seite“ ist für neue Antworten geschlossen.