{"id":24806,"date":"2021-05-25T18:13:00","date_gmt":"2021-05-25T15:13:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24806"},"modified":"2021-10-18T02:39:01","modified_gmt":"2021-10-17T23:39:01","slug":"hinzufugen-einer-benutzerdefinierten-bildschaltflache-mit-media-uploader-in-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/hinzufugen-einer-benutzerdefinierten-bildschaltflache-mit-media-uploader-in-wordpress\/","title":{"rendered":"Hinzuf\u00fcgen einer benutzerdefinierten Bildschaltfl\u00e4che mit Media Uploader in WordPress"},"content":{"rendered":"<p>K\u00fcrzlich habe ich an einem Plugin gearbeitet, bei dem wir den Standard-Medien-Uploader von WordPress f\u00fcr unsere Anforderung verwenden wollten. Wir hatten eine benutzerdefinierte Bildschaltfl\u00e4che und wollten ein Bild \u00fcber den Medien-Uploader hochladen. WordPress hat einen sch\u00f6nen Medien-Uploader erstellt, der es einem Benutzer erm\u00f6glicht, ein neues Bild hochzuladen oder ein vorhandenes Bild aus der Medienbibliothek zu verwenden.<\/p>\n<p>Es wird immer empfohlen, den integrierten Medien-Uploader zu verwenden, wenn Sie nach einer benutzerdefinierten L\u00f6sung suchen, um ein Bild im Backend hochzuladen. Dabei folgst du den WordPress-Standards. Die Implementierung eines Medien-Uploaders erfordert nur wenige Codezeilen. Lassen Sie uns also ohne weitere Diskussion damit beginnen.<\/p>\n<p>F\u00fcr dieses Tutorial f\u00fcge ich eine benutzerdefinierte Bildschaltfl\u00e4che f\u00fcr den Beitrag und die Seite hinzu. Wenn Sie auf diese Schaltfl\u00e4che klicken, wird der Medien-Uploader ge\u00f6ffnet, in dem der Benutzer das Bild hochladen kann. Die hochgeladene Bild-URL wird in einem benutzerdefinierten Metafeld festgelegt und als Beitrags-Meta f\u00fcr den jeweiligen Beitrag oder die Seite gespeichert.<\/p>\n<h3>Benutzerdefinierte Metabox in WordPress hinzuf\u00fcgen Add<\/h3>\n<p>Metabox ist nichts anderes als ein Block auf einem Beitrag oder einer Seite. Kategorien, Tags, Featured Image, Excerpt, Discussion, etc. sind Beispiele f\u00fcr Metaboxen. \u00dcber die Meta-Box k\u00f6nnen Sie zus\u00e4tzliche Informationen f\u00fcr den Beitrag und die Seite hinzuf\u00fcgen.<\/p>\n<p>Wir ben\u00f6tigen eine Metabox, die die Schaltfl\u00e4che zum Hochladen des Bildes und ein Textfeld enth\u00e4lt. Wenn ein Benutzer auf die Schaltfl\u00e4che klickt, l\u00e4dt er das Bild hoch und die endg\u00fcltige Bild-URL wird im Textfeld festgelegt.<\/p>\n<p>Das Hinzuf\u00fcgen einer <a href=\"https:\/\/developer.wordpress.org\/plugins\/metadata\/custom-meta-boxes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Metabox<\/a> ist einfach und unkompliziert. Schreiben Sie den folgenden Code in die <code>functions.php<\/code>Datei oder in Ihr Plugin.<\/p>\n<pre><code>function aw_custom_meta_boxes( $post_type, $post) {\n\u00a0\u00a0\u00a0\u00a0add_meta_box(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'aw-meta-box',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0__( 'Custom Image' ),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'render_aw_meta_box',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array('post', 'page'), \/\/post types here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'normal',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'high'\n\u00a0\u00a0\u00a0\u00a0);\n}\nadd_action( 'add_meta_boxes', 'aw_custom_meta_boxes', 10, 2 );\n\u00a0\nfunction render_aw_meta_box($post) {\n\u00a0\u00a0\u00a0\u00a0$image = get_post_meta($post-&gt;ID, 'aw_custom_image', true);\n\u00a0\u00a0\u00a0\u00a0?&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;table&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;tr&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;a href=\"#\" class=\"aw_upload_image_button button button-secondary\"&gt;&lt;?php _e('Upload Image'); ?&gt;&lt;\/a&gt;&lt;\/td&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;td&gt;&lt;input type=\"text\" name=\"aw_custom_image\" id=\"aw_custom_image\" value=\"&lt;?php echo $image; ?&gt;\" style=\"width:500px;\" \/&gt;&lt;\/td&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/tr&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/table&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;?php\n}<\/code><\/pre>\n<p>Nachdem Sie den obigen Code hinzugef\u00fcgt haben, gehen Sie zu Ihrem Beitrag oder Ihrer Seite und Sie sollten die neue Meta-Box zusammen mit ihren Feldern sehen k\u00f6nnen.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20472-6081f701c7c42.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20472-6081f701c7c42.png\" alt=\"Hinzuf\u00fcgen einer benutzerdefinierten Bildschaltfl\u00e4che mit Media Uploader in WordPress\" ><\/a><\/p>\n<h3>WordPress Media Uploader anpassen<\/h3>\n<p>Sie sind jetzt mit Ihrer Meta-Box fertig. Als n\u00e4chstes klicken Sie auf die Schaltfl\u00e4che &#8218;Bild hochladen&#8216;, \u00f6ffnen den Medien-Uploader und geben die hochgeladene Bild-URL in das Textfeld ein. Zuerst m\u00fcssen Sie also eine js-Datei <a href=\"https:\/\/themewp.inform.click\/de\/standardmethode-zum-einbinden-von-javascript-und-css-in-wordpress\/\" title=\"erstellen und\">erstellen und<\/a> in eine WordPress-Umgebung <a href=\"https:\/\/themewp.inform.click\/de\/standardmethode-zum-einbinden-von-javascript-und-css-in-wordpress\/\" title=\"einreihen\">einreihen<\/a>.<\/p>\n<p>Lassen Sie uns eine js-Datei erstellen <code>awscript.js<\/code>und sie wie folgt in die Warteschlange einreihen:<\/p>\n<pre><code>function aw_include_script() {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (! did_action( 'wp_enqueue_media')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_enqueue_media();\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0wp_enqueue_script( 'awscript', get_stylesheet_directory_uri(). '\/js\/awscript.js', array('jquery'), null, false );\n}\nadd_action( 'admin_enqueue_scripts', 'aw_include_script' );<\/code><\/pre>\n<p>Hier habe ich den Theme-Pfad angegeben, vorausgesetzt, Sie f\u00fcgen dem Theme einen ganzen Code hinzu. Wenn Sie dies \u00fcber ein Plugin tun, m\u00fcssen Sie den Pfad gem\u00e4\u00df Ihrem Plugin anpassen.<\/p>\n<p>Um diese Aufgabe auszuf\u00fchren, habe ich eine Referenz von <a href=\"https:\/\/codex.wordpress.org\/Javascript_Reference\/wp.media\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Javascript Reference\/wp.media genommen<\/a> und den jQuery-Code geschrieben. In der werden <code>awscript.js<\/code>wir einen Medien-Uploader-Code wie folgt schreiben.<\/p>\n<pre><code>jQuery(function($){\n\u00a0\u00a0\u00a0\u00a0$('body').on('click', '.aw_upload_image_button', function(e){\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0e.preventDefault();\n\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var button = $(this),\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0aw_uploader = wp.media({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0title: 'Custom image',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0library: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uploadedTo: wp.media.view.settings.post.id,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type: 'image'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0button: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0text: 'Use this image'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0multiple: false\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}).on('select', function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var attachment = aw_uploader.state().get('selection').first().toJSON();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('#aw_custom_image').val(attachment.url);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.open();\n\u00a0\u00a0\u00a0\u00a0});\n});<\/code><\/pre>\n<p>Fahren Sie nun fort und klicken Sie auf die Schaltfl\u00e4che &quot;Bild hochladen&quot;. Dadurch wird der Medien-Uploader ge\u00f6ffnet, das Bild ausgew\u00e4hlt \/ hochgeladen und Sie sollten die Bild-URL im Textfeld hinzugef\u00fcgt sehen. Abschlie\u00dfend speichere ich diese URL in der &#8218;postmeta&#8216;-Tabelle mit dem Schl\u00fcssel &#8218;aw_custom_image&#8216;. Nat\u00fcrlich k\u00f6nnen Sie dem Schl\u00fcssel einen beliebigen Namen geben.<\/p>\n<pre><code>function aw_save_postdata($post_id)\n{\n\u00a0\u00a0\u00a0\u00a0if (array_key_exists('aw_custom_image', $_POST)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0update_post_meta(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$post_id,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'aw_custom_image',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$_POST['aw_custom_image']\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0}\n}\nadd_action('save_post', 'aw_save_postdata');<\/code><\/pre>\n<p>Der save_post ist eine Aktion, die immer dann ausgel\u00f6st wird, wenn ein Beitrag oder eine Seite erstellt oder aktualisiert wird. Mit dieser Aktion k\u00f6nnen Sie Ihren Code in das System einschleusen. Sie k\u00f6nnen mehr \u00fcber diesen Hook in der <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/save_post\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress-Dokumentation lesen<\/a>.<\/p>\n<p>Ich hoffe, Sie haben sich mit dem Hinzuf\u00fcgen eines benutzerdefinierten Medien-Uploaders in WordPress vertraut gemacht. Probieren Sie es in Ihrem Plugin oder Theme aus und teilen Sie mir Ihre Meinung im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/mailchimp-integration-mit-contact-form-7-plugin\/\" title=\"MailChimp-Integration mit Contact Form 7 Plugin\">MailChimp-Integration mit Contact Form 7 Plugin<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-fugen-sie-code-nach-dem-body-tag-in-wordpress-hinzu\/\" title=\"So f\u00fcgen Sie Code nach dem Body-Tag in WordPress hinzu\">So f\u00fcgen Sie Code nach dem Body-Tag in WordPress hinzu<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>M\u00f6chten Sie Ihrem Plugin oder Theme einen Medien-Uploader hinzuf\u00fcgen? In diesem Artikel zeige ich, wie man den WordPress Media Uploader ganz einfach in sein Plugin integrieren kann<\/p>\n","protected":false},"author":1,"featured_media":21632,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[496,411,607],"tags":[845],"class_list":["post-24806","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","category-sonstig","category-uncategorized-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24806"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24806\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21632"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}