Erweiterte Ansicht für Custom Post Types

  • Hallo alle zusammen!

    Ich konnte leider nichts vergleichbares finden oder habe einfach nur Falsch gesucht aber vielleicht ist es auch garnicht möglich.
    Ich würde gerne eine erweiterte Ansicht von meinen Custom Posts Types haben, ich generiere mit hilfe meines Plugins eine Single template datei die dann mit http://www.site.de/posttype/postname verfügbar ist.

    Jetzt würde ich gerne noch eine 2 Ansicht haben wollen also http://www.site.de/posttype/postname/aktion ist so etwas überhaupt möglich und wenn ja wo nach muss ich suchen.

    LG und Danke

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Für eine andere Form der Darstellung, z.B. als Embed, Amp, Feed o.ä., nennt sich das nicht ganz richtig, aber weitverbreitet bei WordPress "endpoint".

    Bei Google usw. finden sich damit viele Beispiele für die Ergänzung der REST-API, aber man kann auch ganz eigene "endpoints" bzw.- "routes" nutzen, hier ein älteres Beispiel.

    Wenn man Parameter übergeben und in der Seite nutzen will, wäre der Suchbegriff "query_vars", hier ein älteres Beispiel.

  • Ich habe grade festgestellt das es das doch nicht ist ich glaube aber ich habe es falsch erklärt.
    Ich möchte gerne eine zusätzliche Seite generieren also so das es im post loop angezeigt wird.

    Danke schon mal.

  • public function WPS_post_type_squad_init()
    {

    $labels = array(
    'name' => _x('Mannschaften', 'post type general name', 'wp-soccer'),
    'singular_name' => _x('Mannschaften', 'post type singular name', 'wp-soccer'),
    'menu_name' => _x('Mannschaften', 'admin menu', 'wp-soccer'),
    'name_admin_bar' => _x('Mannschaften', 'add new on admin bar', 'wp-soccer'),
    'add_new' => _x('Add New', 'book', 'wp-soccer'),
    'add_new_item' => __('Add New Squad', 'wp-soccer'),
    'new_item' => __('New Squads', 'wp-soccer'),
    'edit_item' => __('Edit Squad', 'wp-soccer'),
    'view_item' => __('View Squad', 'wp-soccer'),
    'all_items' => __('All Squads', 'wp-soccer'),
    'search_items' => __('Search Squads', 'wp-soccer'),
    'parent_item_colon' => __('Parent Squad:', 'wp-soccer'),
    'not_found' => __('No Squad found.', 'wp-soccer'),
    'not_found_in_trash' => __('No Squads found in tresh.', 'wp-soccer'));

    $supports = array('title','editor','thumbnail');

    $args = array(
    'labels' => $labels,
    'description' => __('Mannschaften', 'wp-soccer'),
    'public' => true,
    'menu_icon' => 'dashicons-id-alt',
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => array('slug' => 'squad'),
    'capability_type' => 'post',
    'has_archive' => true,
    'hierarchical' => true,
    'menu_position' => null,
    'taxonomies' => array(), // array('category', 'post_tag','page-category'),
    'supports' => $supports);

    register_post_type('squad', $args);

    // create single template
    add_filter("single_template", array($this, "WPS_post_type_squad_single_template"));

    }

  • Lege eine Unterseite an und nutze in der Loop in Deinem single-cpt.php Template sowas wie

    PHP
    if( $post->post_parent != 0 ) {
        // unterseite oder unterunterseite o.ä. zeugs hier
    } else {
        // top level seite zeugs hier
    }
  • Manuell kann ich das ja im Backend machen ich würde aber gerne das es Automatisch durch das Plugin gemacht wird das. Mit reinem PHP wäre das über ein switch case leicht gemacht dann würde es ja so aussehen ?site=postname&action=posttitle&name=nochetwas

  • Also: Du benutzt ein Plugin, aber Du benutzt kein Plugin. Du willst im CPT-Template auf eine Unterseite reagieren aber Du willst nicht im CPT-Template auf eine Unterseite reagieren. Du stellst Dir genau so eine /postname/unterseite/ vor aber Du willst keine. Alles recht verwirrend. Beschreibe doch nochmal komplett, was Du genau mit welchen Plugins machst und was dabei nicht funktioniert.

  • ich habe mir mit custom post types ein Plugin gebaut das auch komplett funktioniert. Ich habe mehrere costum post types die mit einander Agieren. Bedeutet mit einer erstelle ich Events mit der anderen Teams. Jetzt zeige ich unter Teams die Teams an und möchte nun (weil es schöner ist) ein Button haben der mich auf eine Seite leitet die mir die Events des Teams anzeigt. Wegen der Seo würde ich das dann gerne so haben das es hinter dem Team namen steht.

  • Ok, nur hat das mit den o.g. Fragen und Antworten jetzt eher weniger zu tun.

    Wie sind "Events" und "Teams" denn technisch miteinander verknüpft?

    Wenn es keine echten Unterseiten bei "Teams" gibt, also hierarchical = false, dann könnte man einen Parameter in single-teams.php über eine Konstruktion mit query_vars herausfinden, siehe #2

    Einmal editiert, zuletzt von b3317133 (3. April 2017 um 22:18)

    • example.com/teams/team-abc/ <- Seite des CPT
    • example.com/teams/team-abc/event-xyz/ <- Seite des CPT mit query_var, siehe Post #2 im Thread

    Dann in [FONT=courier new]single-teams.php[/FONT] die entspr. query_var auswerten und das Event aus dem anderen CPT per [FONT=courier new]get_posts()[/FONT] und entspr. Parameter, z.B. [FONT=courier new]name[/FONT] & [FONT=courier new]post_type[/FONT] holen und entspr. anzeigen.

    Einmal editiert, zuletzt von b3317133 (3. April 2017 um 22:28)

  • Wie würde das denn aussehen wenn ich mir die Parameter aus dem Post ziehe?
    Ich stehe total auf dem Schlauch. Ich müsste ja dann auch eine if abfrage machen wenn die erweiterte Seite ausgewähltist dann zeige sie, wenn nicht dann zeige normale Seite an.

    Meine Url ist ja dynamisch also:
    http://www.examlpe.com/teams/team123

    und soll nur um eins erweitert werden also:
    http://www.examlpe.com/teams/team123/events

    Einmal editiert, zuletzt von nuVo (4. April 2017 um 15:14)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!