1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Beitragstypen für Autoren Rolle freigeben

Dieses Thema im Forum "Mobil mit WordPress" wurde erstellt von leesrott, 13. September 2020.

  1. leesrott

    leesrott New Member

    Registriert seit:
    13. September 2020
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo Forum,

    dies ist mein erster Beitrag, ich bin also noch ziemlicher Anfänger was das Thema WP betrifft.

    Für eine Webseite möchte ich ein Plugin für einen benutzerdefinierten Beitragstyp „Veranstaltungen“ erstellen. Ich habe mich dabei stark an einem Beispiel aus dem Buch von Richard Eisenmenge orientiert. Allerdings möchte ich, dass auch Autoren neue Veranstaltungen posten können und weiß nicht so genau, wo ich da ansetzen muss. Würde mich freuen, von euch zu hören. Danke!


    <?php

    /**
    * Plugin Name: Phoenix Event Custom Post Typ
    */

    function add_phoenix_events() {

    $labels = array(
    'name' => 'Veranstaltungen',
    'singular_name' => 'Veranstaltung',
    'add_new' => 'Erstellen',
    'add_new_item' => 'Neue Veranstaltung erzeugen',
    'edit_item' => 'Veranstaltung bearbeiten',
    'new_item' => 'Neue Veranstaltung',
    'view_item' => 'Veranstaltung ansehen',
    'view_items' => 'Veranstaltungen ansehen',
    'search_items' => 'Nach Veranstaltungen suchen',
    'not_found' => 'Nichts gefunden',
    'not_found_in_trash' => 'Nichts im Papierkorb gefunden',
    'all_items' => 'Alle Veranstaltungen',
    'archives' => 'Veranstaltungsarchiv',
    'attributes' => 'Veranstaltungsattribute',
    'insert_into_item' => 'Einfügen',
    'uploaded_to_this_item' => 'Medien für Veranstaltungen',
    'featured_image' => 'Veranstaltungs-Flyer',
    'set_featured_image' => 'Veranstaltungs-Flyer festlegen',
    'remove_featured_image' => 'Veranstaltungs-Flyer entfernen',
    'use_featured_image' => 'Veranstaltungs-Flyer verwenden',
    'menu_name' => 'Veranstaltungen',
    'filter_items_list' => 'Veranstaltungen',
    'items_list_navigation' => 'Veranstaltungen',
    'items_list' => 'Weitere Veranstaltungen',
    'name_admin_bar' => 'Veranstaltung',
    );

    $args = array(
    'labels' => $labels,
    'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'trackbacks'),
    'taxonomies' => array( 'phoenix_eventtype' ),
    'hierarchical' => false,
    'public' => true,
    'show_in_rest' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'show_in_nav_menus' => true,
    'show_in_admin_bar' => true,
    'menu_position' => 5,
    'can_export' => false,
    'has_archive' => true,
    'exclude_from_search' => false,
    'publicly_queryable' => true,
    'rewrite' => array('slug' => 'events'),
    'capability_type' => 'page',
    );

    register_post_type( 'phoenix_event', $args );
    }

    add_action( 'init', 'add_phoenix_events', 0 );

    function add_phoenix_event_fields() {
    add_meta_box( 'location', 'Ort', 'add_phoenix_events_location', 'phoenix_event', 'side', 'high' );
    add_meta_box( 'eventdate', 'Datum', 'add_phoenix_events_eventdate', 'phoenix_event', 'side', 'high' );
    add_meta_box( 'eventprice', 'Preis', 'add_phoenix_events_price', 'phoenix_event', 'side', 'high' );
    }

    function add_phoenix_events_location() {
    global $post;
    $custom = get_post_custom( $post->ID );
    $location = $custom['location'][0];
    echo '<input type="text" name="location" value="' . $location . '" />';
    }

    function add_phoenix_events_price() {
    global $post;
    $custom = get_post_custom( $post->ID );
    $eventprice = $custom['eventprice'][0];
    echo '<input type="text" name="eventprice" value="' . $eventprice . '" />';
    }

    function add_phoenix_events_eventdate( $post ) {
    wp_enqueue_script( 'jquery-ui-datepicker' );
    wp_enqueue_style( 'jquery-ui-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css', true);

    $eventdate = get_post_meta( $post->ID, 'eventdate', true );
    ?>
    <script>
    jQuery(document).ready(function() {
    jQuery('#eventdateid').datepicker({
    dateFormat : 'yy-mm-dd'
    });
    });
    </script>
    <input type="text" name="eventdate" id="eventdateid" value="<?php echo $eventdate; ?>" /></td>
    <?php
    }

    function save_phoenix_event_fields( $post_id ) {
    $post_type = get_post_type( $post_id );
    if ( $post_type != 'phoenix_event' ) {
    return;
    }
    update_post_meta( $post_id, 'location', $_POST['location'] );
    update_post_meta( $post_id, 'eventdate', $_POST['eventdate'] );
    update_post_meta( $post_id, 'eventprice', $_POST['eventprice'] );
    }

    add_action( 'admin_init', 'add_phoenix_event_fields' );
    add_action( 'save_post', 'save_phoenix_event_fields' );

    function define_phoenix_events_list_columns( $columns ) {
    $columns = array (
    'cb' => '<input type="checkbox" />',
    'title' => 'Veranstaltung',
    'location' => 'Ort',
    'eventdate' => 'Datum',
    'eventprice' => 'Preis'
    );
    return $columns;
    }

    function output_phoenix_events_list_field( $column, $post_id ) {
    $custom = get_post_custom( $post_id );
    if ( $column == 'location' ) {
    echo $custom['location'][0];
    }
    elseif ( $column == 'eventdate' ) {
    $custom = get_post_custom();
    echo date_i18n( get_option( 'date_format' ), strtotime( $custom['eventdate'][0] ) );
    }
    elseif ( $column == 'eventprice' ) {
    echo $custom['eventprice'][0];
    }
    }

    add_filter( 'manage_edit-phoenix_event_columns', 'define_phoenix_events_list_columns' );
    add_action( 'manage_posts_custom_column', 'output_phoenix_events_list_field', 10, 2 );

    function add_phoenix_eventtype() {
    $labels = array(
    'name' => 'Veranstaltungsart',
    'singular_name' => 'Veranstaltungsart',
    'search_items' => 'Veranstaltungsarten durchsuchen',
    'all_items' => 'alle Veranstaltungsarten',
    'parent_item' => 'Übergeordnete Veranstaltungsart',
    'parent_item_colon' => 'Übergeordnete Veranstaltungsart:',
    'edit_item' => 'Veranstaltungsart bearbeiten',
    'update_item' => 'Veranstaltungsart aktualisieren',
    'add_new_item' => 'Veranstaltungsart hinzufügen',
    'new_item_name' => 'Neue Veranstaltungsart',
    'not_found' => 'Keine Veranstaltungsarten gefunden',
    'menu_name' => 'Veranstaltungsarten'
    );

    $args = array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'show_in_rest' => true,
    'show_admin_column' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'genre' ),
    );
    register_taxonomy( 'eventtype', array('phoenix_event', 'page'), $args );
    }

    add_action( 'init', 'add_phoenix_eventtype', 0 );
     
  2. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    12.168
    Zustimmungen:
    1.885
    Vermutlich in der Zeile:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Mehr dazu siehe z.B. in der register_post_type() Dokumentation.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden