{"id":24809,"date":"2021-05-25T18:25:00","date_gmt":"2021-05-25T15:25:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24809"},"modified":"2021-10-17T20:39:55","modified_gmt":"2021-10-17T17:39:55","slug":"mukautetun-kuvapainikkeen-lisaaminen-media-uploader-ohjelmalla-wordpressissa","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/mukautetun-kuvapainikkeen-lisaaminen-media-uploader-ohjelmalla-wordpressissa\/","title":{"rendered":"Mukautetun kuvapainikkeen lis\u00e4\u00e4minen Media Uploader -ohjelmalla WordPressiss\u00e4"},"content":{"rendered":"<p>Viime aikoina ty\u00f6skentelin laajennuksen parissa, jossa halusimme k\u00e4ytt\u00e4\u00e4 vaatimuksemme WordPressin oletustiedostolatausohjelmaa. Meill\u00e4 oli mukautettu kuvapainike ja halusimme ladata kuvan median latausohjelman kautta. WordPress rakensi kauniisti median latausohjelman, jonka avulla k\u00e4ytt\u00e4j\u00e4 voi ladata uuden kuvan tai k\u00e4ytt\u00e4\u00e4 olemassa olevaa kuvaa mediakirjastosta.<\/p>\n<p>On aina suositeltavaa k\u00e4ytt\u00e4\u00e4 sis\u00e4\u00e4nrakennettua medianlatausohjelmaa, jos etsit mukautettua ratkaisua kuvan lataamiseen backendiin. N\u00e4in noudatat WordPress-standardeja. Median latausohjelman k\u00e4ytt\u00f6\u00f6notto vie vain muutaman rivin koodia. Joten ilman lis\u00e4keskusteluja, aloitetaan sen kanssa.<\/p>\n<p>T\u00e4t\u00e4 opetusohjelmaa varten lis\u00e4t\u00e4\u00e4n mukautettu kuvapainike viesti\u00e4 ja sivua varten. Napsauttamalla t\u00e4t\u00e4 painiketta, median latausohjelma avautuu, johon k\u00e4ytt\u00e4j\u00e4 voi ladata kuvan. L\u00e4hetetyn kuvan URL-osoite asetetaan mukautettuun metakentt\u00e4\u00e4n ja se tallennetaan tietyn viestin tai sivun viestin meta.<\/p>\n<h3>Lis\u00e4\u00e4 mukautettu metakentt\u00e4 WordPressiin<\/h3>\n<p>Metakentt\u00e4 ei ole muuta kuin postin tai sivun lohko. Luokat, Tunnisteet, Esitelty kuva, Ote, Keskustelu jne. Ovat esimerkkej\u00e4 meta-ruuduista. Meta-ruudun avulla voit lis\u00e4t\u00e4 lis\u00e4tietoja viestist\u00e4 ja sivusta.<\/p>\n<p>Tarvitsemme metakent\u00e4n, joka sis\u00e4lt\u00e4\u00e4 l\u00e4hetyskuvapainikkeen ja tekstikent\u00e4n. Kun k\u00e4ytt\u00e4j\u00e4 napsauttaa painiketta, h\u00e4n l\u00e4hett\u00e4\u00e4 kuvan ja lopullinen kuvan URL-osoite asetetaan tekstikentt\u00e4\u00e4n.<\/p>\n<p>Lis\u00e4\u00e4m\u00e4ll\u00e4 <a href=\"https:\/\/developer.wordpress.org\/plugins\/metadata\/custom-meta-boxes\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">meta laatikko<\/a> on helppo ja suoraviivainen. Kirjoita alla oleva koodi <code>functions.php<\/code>tiedostoon tai laajennukseen.<\/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>Kun olet lis\u00e4nnyt yll\u00e4 olevan koodin, siirry viestiin tai sivulle ja sinun pit\u00e4isi pysty\u00e4 n\u00e4kem\u00e4\u00e4n uusi metakentt\u00e4 lis\u00e4ttyn\u00e4 niiden kenttien kanssa.<\/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=\"Mukautetun kuvapainikkeen lis\u00e4\u00e4minen Media Uploader -ohjelmalla WordPressiss\u00e4\" ><\/a><\/p>\n<h3>Mukauta WordPress Media Uploader<\/h3>\n<p>Olet nyt valmis meta-laatikkosi kanssa. Seuraava asia on &#8217;Lataa kuva&#8217; -painikkeen napsautuksella, avaa mediatiedostojen latausohjelma ja aseta l\u00e4hetetyn kuvan URL-osoite tekstikentt\u00e4\u00e4n. Joten aluksi sinun on luotava js-tiedosto ja pidett\u00e4v\u00e4 <a href=\"https:\/\/themewp.inform.click\/fi\/tavallinen-tapa-sisallyttaa-javascript-ja-css-wordpressiin\/\" title=\"se\">se<\/a> WordPress-ymp\u00e4rist\u00f6ss\u00e4.<\/p>\n<p>Luodaan js-tiedosto <code>awscript.js<\/code>ja asetetaan se seuraavasti:<\/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>T\u00e4ss\u00e4 olen antanut teeman polun olettaen, ett\u00e4 lis\u00e4\u00e4t koko koodin teemaan. Jos teet sen laajennuksen kautta, sinun on s\u00e4\u00e4dett\u00e4v\u00e4 polku laajennuksesi mukaan.<\/p>\n<p>T\u00e4m\u00e4n teht\u00e4v\u00e4n suorittamiseksi olen ottanut viittauksen <a href=\"https:\/\/codex.wordpress.org\/Javascript_Reference\/wp.media\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Javascript Reference \/ wp.media -ohjelmaan<\/a> ja kirjoittanut jQuery-koodin. Vuonna <code>awscript.js<\/code>tulemme kirjoittaa median lataaja on seuraavanlainen.<\/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>Mene eteenp\u00e4in ja napsauta &#8217;Lataa kuva&#8217; -painiketta. Se avaa median latausohjelman, valitse \/ lataa kuva ja sinun pit\u00e4isi n\u00e4hd\u00e4 kuvan URL-osoite tekstikent\u00e4ss\u00e4. Lopuksi aion tallentaa t\u00e4m\u00e4n URL-osoitteen postmeta-taulukkoon avaimella aw_custom_image. Tietenkin voit antaa avaimelle mink\u00e4 tahansa nimen.<\/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>Save_post on toiminto, joka k\u00e4ynnistet\u00e4\u00e4n aina, kun viesti tai sivu luodaan tai p\u00e4ivitet\u00e4\u00e4n. T\u00e4m\u00e4n toiminnon avulla voit lis\u00e4t\u00e4 koodisi j\u00e4rjestelm\u00e4\u00e4n. Voit lukea lis\u00e4\u00e4 t\u00e4st\u00e4 koukusta <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/save_post\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress-dokumentaatiossa<\/a>.<\/p>\n<p>Toivon, ett\u00e4 sait tiet\u00e4\u00e4 mukautetun median latausohjelman lis\u00e4\u00e4misest\u00e4 WordPressiin. Kokeile sit\u00e4 laajennuksessasi tai teemalla ja kerro minulle ajatuksesi alla olevasta kommenttiosasta.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/mailchimp-integraatio-yhteydenottolomakkeen-7-laajennuksella\/\" title=\"MailChimp-integraatio yhteydenottolomakkeen 7 laajennuksella\">MailChimp-integraatio yhteydenottolomakkeen 7 laajennuksella<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-lisata-koodia-body-tagin-jalkeen-wordpressissa\/\" title=\"Kuinka lis\u00e4t\u00e4 koodia Body Tagin j\u00e4lkeen WordPressiss\u00e4\">Kuinka lis\u00e4t\u00e4 koodia Body Tagin j\u00e4lkeen WordPressiss\u00e4<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haluatko lis\u00e4t\u00e4 medialaajennuslaajennuksen tai teemaan. T\u00e4ss\u00e4 artikkelissa n\u00e4yt\u00e4n, kuinka WordPress-medianlatausohjelma voidaan helposti integroida laajennukseensa<\/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":[499,414,610],"tags":[843],"class_list":["post-24809","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","category-sekalaisia","category-uncategorized-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=24809"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/24809\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21632"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=24809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=24809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=24809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}