{"id":3978,"date":"2023-07-18T18:20:20","date_gmt":"2023-07-18T16:20:20","guid":{"rendered":"https:\/\/www.knowboard.de\/?p=3978"},"modified":"2023-11-01T17:40:44","modified_gmt":"2023-11-01T16:40:44","slug":"total-theme-pwex-metabox-factory","status":"publish","type":"post","link":"https:\/\/www.knowboard.de\/total-theme-pwex-metabox-factory\/","title":{"rendered":"Total theme WPEX – WPexplorer metabox factory"},"content":{"rendered":"\n

Die WPEX Meta Factory ist ein wunderbares Set an Funktionen, mit denen man ganz einfach seine selbsterstellten eigenen Custom Post Types mit zus\u00e4tzlichen Metadaten ausstatten kann. Fr\u00fcher habe ich so etwas mit Toolset gel\u00f6st. Die Suite ist sehr m\u00f6chtig, aber auch sehr gro\u00df. Ich bin froh, dass das Total Framework mittlerweile diese Funktion aufweist, da ich damit die Codebasis der Projekte deutlich reduzieren kann. Auch ist das Templating des Frameworks angenehmer zu bedienen als die Views von Toolset.<\/p>\n\n\n\n

<?php \n\/**\n* Register custom fields.\n*\n* @link https:\/\/total.wpexplorer.com\/docs\/snippets\/add-custom-metaboxes-to-total\/\n*\/\nfunction my_register_event_metaboxes() {\n\tif ( ! class_exists( 'WPEX_Meta_Factory' ) ) {\n\t\treturn;\n\t}\n\n\tnew WPEX_Meta_Factory(  array(\n\t\t'id'       => 'event_data',\n\t\t'title'    => esc_html__( 'Details des Events', 'text_domain' ),\n\t\t'screen'   => array( 'ausstellung', 'event' ), \/\/post types to add the metabox to\n\t\t'context'  => 'normal',\n\t\t'priority' => 'default',\n\t\t\/\/ @important since Total Theme Core v1.7.1 you can now pass a function that returns the fields to prevent\n\t\t\/\/ the fields from being stored in memory and so they are only called when needed.\n\t\t'fields'   => array(\n\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Details zur Ver\u00f6ffentlichung', 'enym' ),\n\t\t\t\t'id'   => 'wpex_post_subheading',\n\t\t\t\t'desc'   => 'Erscheint im Bildoverlay unten',\n\t\t\t\t'type' => 'text',\n\t\t\t),\n\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Beginn der Veranstaltung', 'enym' ),\n\t\t\t\t'id'   => 'enym_date',\n\t\t\t\t'desc' => esc_html__( 'Dies ist der Beginn der Veranstaltung', 'enym' ),\n\t\t\t\t'type' => 'date',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Ende der Veranstaltung', 'enym' ),\n\t\t\t\t'id'   => 'enym_date_end',\n\t\t\t\t'desc' => esc_html__( 'Dies ist das Ende der Veranstaltung', 'enym' ),\n\t\t\t\t'type' => 'date',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Startzeit - Veranstaltungsende', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_beginn_time',\n\t\t\t\t'desc' => esc_html__( 'Dies ist die Uhrzeit der Veranstaltung. Angabe des Endes ist optional.', 'text_domain' ),\n\t\t\t\t'type' => 'text',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Anmeldeseite', 'text_domain' ),\n\t\t\t\t'desc' => esc_html__( 'Erg\u00e4nzt den Hinweis: \"F\u00fcr dieses Event wird eine Anmeldung empfohlen\"', 'enym' ),\n\t\t\t\t'id'   => 'enym_application',\n\t\t\t\t'type' => 'url',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Einladung (Vorderseite)', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_invitation_front',\n\t\t\t\t'type' => 'upload',\n\t\t\t\t'desc' => esc_html__( 'Einladungsflyer als JPG', 'enym' ),\n\t\t\t\t'return' => 'id', \/\/ return ID or URL\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Einladung (R\u00fcckseite)', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_invitation_back',\n\t\t\t\t'type' => 'upload',\n\t\t\t\t'desc' => esc_html__( 'Einladungsflyer als JPG', 'enym' ),\n\t\t\t\t'return' => 'id', \/\/ return ID or URL\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Name des K\u00fcnstler\/ der Gruppe', 'enym' ),\n\t\t\t\t'id'   => 'enym_artist',\n\t\t\t\t'desc' => esc_html__( 'Name der beteiligten K\u00fcnstler', 'enym' ),\n\t\t\t\t'desc_tip' => esc_html__( 'Custom tip if needed', 'enym' ),\n\t\t\t\t'type' => 'text',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Webseite des K\u00fcnstlers', 'text_domain' ),\n\t\t\t\t'desc' => esc_html__( 'Optionaler Link auf die Internetseite des Kpnstlers', 'enym' ),\n\t\t\t\t'id'   => 'enym_url',\n\t\t\t\t'type' => 'url',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Einladung', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_group',\n\t\t\t\t'type' => 'group', \/\/ combine multiple settings into 1 that returns an array of the values.\n\t\t\t\t'desc' => esc_html__( 'Bilder der Einladung k\u00f6nnen einzeln hochgeladen werden', 'enym' ),\n\t\t\t\t'fields' => array(\n\t\t\t\t\t\/\/ Add the fields normally here like above\n\t\t\t\t\tarray(\n\t\t\t\t\t\t'name' => esc_html__( 'Bild der Einladung', 'text_domain' ),\n\t\t\t\t\t\t'id'   => 'enym_upload_invitation',\n\t\t\t\t\t\t'type' => 'upload',\n\t\t\t\t\t\t'return' => 'id', \/\/ return ID or URL\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Einladung (Vorderseite)', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_invitation_front',\n\t\t\t\t'type' => 'upload',\n\t\t\t\t'desc' => esc_html__( 'Einladungsflyer als JPG', 'enym' ),\n\t\t\t\t'return' => 'id', \/\/ return ID or URL\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Einladung (R\u00fcckseite)', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_invitation_back',\n\t\t\t\t'type' => 'upload',\n\t\t\t\t'desc' => esc_html__( 'Einladungsflyer als JPG', 'enym' ),\n\t\t\t\t'return' => 'id', \/\/ return ID or URL\n\t\t\t),\n\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Laudatio', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_laudatio',\n\t\t\t\t'media_buttons' => 'true',\n\t\t\t\t'quicktags' => 'true',\n\t\t\t\t'rows' => '15',\n\t\t\t\t'type' => 'wp_editor',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Laudatio (PDF)', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_laudatio_file',\n\t\t\t\t'type' => 'upload',\n\t\t\t\t'desc' => esc_html__( 'Er\u00f6ffnungsrede als PDF-Dokument inklusive Bilder', 'enym' ),\n\t\t\t\t'return' => 'id', \/\/ return ID or URL\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Pressemitteilung (PDF)', 'text_domain' ),\n\t\t\t\t'id'   => 'enym_presse_file',\n\t\t\t\t'type' => 'upload',\n\t\t\t\t'desc' => esc_html__( 'Pressemitteilung als PDF-Dokument inklusive Bilder', 'enym' ),\n\t\t\t\t'return' => 'id', \/\/ return ID or URL\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Select example', 'text_domain' ),\n\t\t\t\t'id' => 'enym_select',\n\t\t\t\t'type' => 'select',\n\t\t\t\t'choices' => array(\n\t\t\t\t\t'' => esc_html__( 'Choice 1', 'text_domain' ),\n\t\t\t\t\t'option-2' => esc_html__( 'Choice 2', 'text_domain' ),\n\t\t\t\t),\n\t\t\t\t'desc' => esc_html__( 'Custom description if needed', 'text_domain' ),\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Text Type', 'text_domain' ),\n\t\t\t\t'id' => 'enym_text',\n\t\t\t\t'desc' => esc_html__( 'Custom description if needed', 'text_domain' ),\n\t\t\t\t'type' => 'text',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Text Type', 'text_domain' ),\n\t\t\t\t'id' => 'enym_color',\n\t\t\t\t'type' => 'color',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Textarea Type', 'text_domain' ),\n\t\t\t\t'id' => 'enym_textarea',\n\t\t\t\t'type' => 'textarea',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Editor Type', 'text_domain' ),\n\t\t\t\t'id' => 'enym_editor',\n\t\t\t\t'type' => 'wp_editor',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Notice Type', 'text_domain' ),\n\t\t\t\t'id' => 'enym_notice',\n\t\t\t\t'type' => 'notice',\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Icon Select', 'text_domain' ),\n\t\t\t\t'id' => 'YOUR_UNIQUE_CUSTOM_FIELD_NAME',\n\t\t\t\t'type' => 'icon_select',\n\t\t\t\t'choices' => array(\n\t\t\t\t\t'' => esc_html__( 'Empty Choice', 'text_domain' ),\n\t\t\t\t\t'fa fa-home' => esc_html__( 'Home', 'text_domain' ),\n\t\t\t\t\t'fa fa-bolt' => 'fa fa-bold', \/\/ note: you can add a name (see prev) or set the value equal to the key. \n\t\t\t\t\t\/\/You can also use the wpex_ticons_list() function to grab a list of theme icons - see plugins\/total-theme-core\/inc\/meta\/class-wpex-card-meta.php for an example.\n\t\t\t\t),\n\t\t\t),\n\t\t\tarray(\n\t\t\t\t'name' => esc_html__( 'Multi\/Repeater Type', 'text_domain' ),\n\t\t\t\t'id' => 'enym_multi_select_1',\n\t\t\t\t'type' => 'multi_select', \/\/ combine multiple settings into 1 that returns an array of the values.\n\t\t\t\t'choices' => array(\n\t\t\t\t\t'' => esc_html__( 'Choice 1', 'text_domain' ),\n\t\t\t\t\t'option-2' => esc_html__( 'Choice 2', 'text_domain' ),\n\t\t\t\t),\n\t\t\t\t'desc' => esc_html__( 'Custom description if needed', 'text_domain' ),\n\t\t\t),\n\n\t\t)\n\t) );\n}\nadd_action( 'admin_init', 'my_register_event_metaboxes' );<\/pre>\n\n\n\n


<\/p>\n","protected":false},"excerpt":{"rendered":"

Die WPEX Meta Factory ist ein wunderbares Set an Funktionen, mit denen man ganz einfach seine selbsterstellten eigenen Custom Post Types mit zus\u00e4tzlichen Metadaten ausstatten kann. Fr\u00fcher habe ich so etwas mit Toolset gel\u00f6st. Die Suite ist sehr m\u00f6chtig, aber auch sehr gro\u00df. Ich bin froh, dass das Total Framework mittlerweile diese Funktion aufweist, da…<\/p>\n","protected":false},"author":1,"featured_media":3998,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","footnotes":""},"categories":[68,61,6],"tags":[],"class_list":["post-3978","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-toolset","category-total-theme","category-wordpress","entry","has-media"],"_links":{"self":[{"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/posts\/3978"}],"collection":[{"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/comments?post=3978"}],"version-history":[{"count":5,"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/posts\/3978\/revisions"}],"predecessor-version":[{"id":4124,"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/posts\/3978\/revisions\/4124"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/media\/3998"}],"wp:attachment":[{"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/media?parent=3978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/categories?post=3978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.knowboard.de\/wp-json\/wp\/v2\/tags?post=3978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}