Verfasste Forenbeiträge

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)
  • Forum: Plugins
    Als Antwort auf: Plugin Posttype Metabox Remove
    Thread-Starter mikonoru

    (@mikonoru)

    @pixolin

    <?php
    // Beenden, wenn direkt aufgerufen
    if (!defined('ABSPATH')) {
    die(-1); // Exit if accessed directly.
    }

    class OpeningHoursPostType
    {
    /**
    * @var string $slug Der Slug für den benutzerdefinierten Post-Typ
    */
    private $slug = 'opening_hours';

    /**
    * @var string $typeTax Der Slug für die Taxonomie "Typ"
    */
    private $typeTax = OPENING_TYPE;

    /**
    * @var string $locationTax Der Slug für die Taxonomie "Standort"
    */
    private $locationTax = 'location';

    /**
    * @var array $postTypeLabel Die Labels für den benutzerdefinierten Post-Typ
    */
    private $postTypeLabel;

    /**
    * @var array $taxLabel Die Labels für die Taxonomie "Typ"
    */
    private $taxLabel;

    /**
    * @var array $locationLabel Die Labels für die Taxonomie "Standort"
    */
    private $locationLabel;

    /**
    * Singleton-Instanz
    * @var self
    */
    protected static $instance;

    /**
    * Stellt sicher, dass nur eine Instanz der Klasse existiert (Singleton-Pattern)
    *
    * @return self
    */
    public static function instance()
    {
    if (!self::$instance) {
    self::$instance = new self;
    }
    return self::$instance;
    }

    /**
    * Konstruktor
    * Initialisiert die Slugs und Labels für den Post-Typ und die Taxonomien
    */
    public function __construct()
    {
    $this->postTypeLabel = array(
    'name' => __('Öffnungszeiten', 'plugin'),
    'singular_name' => __('Öffnungszeit', 'plugin'),
    'edit_item' => __('Öffnungszeit bearbeiten', 'plugin')
    );
    $this->taxLabel = array(
    'name' => __('Öffnungszeiten Typen', 'plugin'),
    'singular_name' => __('Öffnungszeiten Typ', 'plugin')
    );
    $this->locationLabel = array(
    'name' => __('Standorte', 'plugin'),
    'singular_name' => __('Standort', 'plugin')
    );
    }

    /**
    * Registriert den benutzerdefinierten Post-Typ
    */
    public function register_posttype()
    {
    $args = array(
    'labels' => $this->postTypeLabel,
    'public' => true,
    'has_archive' => true,
    'show_in_menu' => false,
    'show_in_rest' => true, // Sichtbar in der REST API
    'publicly_queryable' => true,
    'menu_icon' => 'dashicons-clock',
    'supports' => array('title', 'editor', 'author', 'excerpt'),
    );
    register_post_type($this->slug, $args);
    }



    /**
    * Registriert die benutzerdefinierten Taxonomien
    */
    public function register_taxonomy()
    {
    $args = array(
    'labels' => $this->taxLabel,
    'public' => true,
    'hierarchical' => true,
    // 'show_ui' => false,
    'show_in_rest' => true,
    );
    register_taxonomy($this->typeTax, $this->slug, $args);

    $location_args = array(
    'labels' => $this->locationLabel,
    'public' => true,
    'hierarchical' => true,
    // 'show_ui' => false,
    'show_in_rest' => true,
    );
    register_taxonomy($this->locationTax, $this->slug, $location_args);
    }

    /**
    * Fügt die Aktionen zum Registrieren des Post-Typs und der Taxonomien hinzu
    */
    public function register()
    {
    add_action('init', array($this, 'register_posttype'));
    add_action('init', array($this, 'register_taxonomy'));
    add_action('admin_menu', array($this, 'add_main_menu'));
    }

    /**
    * Fügt das Hauptmenü und die Untermenüs im Admin-Bereich hinzu
    */
    public function add_main_menu()
    {
    // Fügt das Submenü für Öffnungszeiten hinzu
    add_submenu_page(
    'wp_menu',
    __('Öffnungszeiten', 'plugin'),
    __('Öffnungszeiten', 'plugin'),
    'manage_options',
    'edit.php?post_type=' . $this->slug
    );

    // Fügt das Submenü für Öffnungszeiten Typen hinzu
    add_submenu_page(
    'wp_menu',
    __('Öffnungszeiten Typen', 'plugin'),
    __('Öffnungszeiten Typen', 'plugin'),
    'manage_options',
    'edit-tags.php?taxonomy=' . $this->typeTax . '&post_type=' . $this->slug
    );

    // Fügt das Submenü für Standorte hinzu
    add_submenu_page(
    'wp_menu',
    __('Standorte', 'plugin'),
    __('Standorte', 'plugin'),
    'manage_options',
    'edit-tags.php?taxonomy=' . $this->locationTax . '&post_type=' . $this->slug
    );
    }
    }

    // Erstelle eine Instanz der OpeningHoursPostType-Klasse und registriere den Post-Typ und die Taxonomien
    $openingHoursPostType = OpeningHoursPostType::instance();
    $openingHoursPostType->register();

    ?>
    Forum: Plugins
    Als Antwort auf: Plugin Posttype Metabox Remove
    Thread-Starter mikonoru

    (@mikonoru)

    Forum: Plugins
    Als Antwort auf: Plugin Posttype Metabox Remove
    Thread-Starter mikonoru

    (@mikonoru)

    Also ich würde ja n Bild Hochladen, aber es funktioniert leider nicht. 🙂

    Forum: Plugins
    Als Antwort auf: Plugin Posttype Metabox Remove
    Thread-Starter mikonoru

    (@mikonoru)

    „Öffnungszeiten Typen“ sowie „Standorte“ ist der automatisch erstelle von WordPress wenn man Kategorien Registriert

    das „Standort und Typ auswählen“ ist meine eigene Metabox wo beides als Dropdown ausgewählt werden kann.

    die ersten beiden die Standard mäßig erzeugt werden sind überflüssig und nicht notwendig.

    • Diese Antwort wurde vor 6 Monaten, 4 Wochen von mikonoru geändert.
    Forum: Plugins
    Als Antwort auf: Plugin Posttype Metabox Remove
    Thread-Starter mikonoru

    (@mikonoru)

    Es sind Tatsächlich Zwei Kategorie-Bereiche die ich Hinzufüge. Einmal ein Typ und einmal eine Location.


    zum wo es besser aufgehoben wäre:

    kann ich das hier verschieben? oder ist das eine Komplett eigene Seite? 😀

    • Diese Antwort wurde vor 6 Monaten, 4 Wochen von mikonoru geändert.
Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)