{"id":233524,"date":"2023-02-16T18:12:00","date_gmt":"2023-02-16T15:12:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233524"},"modified":"2022-11-11T00:09:32","modified_gmt":"2022-11-10T21:09:32","slug":"opetusohjelma-kuinka-lisaetae-mukautettu-joukkotoiminto-wordpress-adminissa","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/opetusohjelma-kuinka-lisaetae-mukautettu-joukkotoiminto-wordpress-adminissa\/","title":{"rendered":"Opetusohjelma: Kuinka lis\u00e4t\u00e4 mukautettu joukkotoiminto WordPress Adminissa"},"content":{"rendered":"\n<p>Useimpien WordPress-j\u00e4rjestelm\u00e4nvalvojan elementtitaulukoiden yl\u00e4puolella (esim. viestit, sivut, kommentit, laajennukset ja k\u00e4ytt\u00e4j\u00e4t) l\u00f6yd\u00e4t WordPressin toiminnot joukkotoimintoihin. Joukkotoimintojen avulla voit tarkistaa useita elementtej\u00e4, valita toiminnon ja suorittaa sen kaikille elementeille kerralla. T\u00e4ss\u00e4 viestiss\u00e4 tarkastellaan, kuinka lis\u00e4t\u00e4 omia mukautettuja joukkotoimintoja WordPress-j\u00e4rjestelm\u00e4nvalvojaan.<\/p>\n<p>Mukautetun joukkotoiminnon lis\u00e4\u00e4misest\u00e4 on tullut paljon helpompaa WordPressin uusimmissa versioissa (4.7 l\u00e4htien). K\u00e4ytett\u00e4viss\u00e4 olevia vaihtoehtoja varten on suodatin avattavassa valikossa. toinen suodatin sille, mit\u00e4 sen pit\u00e4isi tehd\u00e4, kun vaihtoehtosi valitaan, ja toinen koukku valinnaisen j\u00e4rjestelm\u00e4nvalvojan ilmoituksen n\u00e4ytt\u00e4miseen. K\u00e4yd\u00e4\u00e4n l\u00e4pi jokainen n\u00e4ist\u00e4.<\/p>\n<h2>Muokatun joukkotoiminnon lis\u00e4\u00e4minen avattavaan valikkoon<\/h2>\n<p>Aloitetaan lis\u00e4\u00e4m\u00e4ll\u00e4 mukautettu joukkotoiminto avattavaan joukkotoimintovalikkoon. T\u00e4t\u00e4 varten k\u00e4yt\u00e4mme suodatinta <code>bulk_actions_&lt;screen&gt;<\/code>, jossa korvataan mill\u00e4 tahansa j\u00e4rjestelm\u00e4nvalvojan n\u00e4yt\u00f6ll\u00e4, johon haluat lis\u00e4tt\u00e4v\u00e4n vaihtoehdon. T\u00e4ss\u00e4 on t\u00e4ydellinen yleiskatsaus mahdollisista n\u00e4yt\u00f6n vaihtoehdoista:<\/p>\n<ul>\n<li><code>bulk_actions-edit-post<\/code>: Viestityyppi &quot;l\u00e4het\u00e4&quot; muokkausn\u00e4ytt\u00f6\u00f6n<\/li>\n<li><code>bulk_actions-edit-page<\/code>: Viestityyppi &#8217;sivun&#8217; muokkausn\u00e4ytt\u00f6<\/li>\n<li><code>bulk_actions-edit-&lt;post-type-name&gt;<\/code>: Mukautetun viestityypin muokkausn\u00e4ytt\u00f6<\/li>\n<li><code>bulk_actions-edit-&lt;custom-taxonomy&gt;<\/code>: Mukautetun taksonomian muokkausn\u00e4ytt\u00f6<\/li>\n<li><code>bulk_actions-edit-comments<\/code>: Kommenttiluettelon\u00e4ytt\u00f6<\/li>\n<li><code>bulk_actions-plugins<\/code>: Lis\u00e4osien luettelon\u00e4ytt\u00f6<\/li>\n<li><code>bulk_actions-users<\/code>: K\u00e4ytt\u00e4j\u00e4luettelon\u00e4ytt\u00f6<\/li>\n<li><code>bulk_actions-upload<\/code>: Mediakirjastoluettelo (toimii vain luettelon\u00e4kym\u00e4ss\u00e4, ei ruudukkon\u00e4kym\u00e4ss\u00e4)<\/li>\n<\/ul>\n<p>Suodatin sovelletaan taulukkoon, jossa on avainarvo-pareja; jossa avaimet ovat toimintojen yksil\u00f6llinen avain ja arvot avattavassa valikossa n\u00e4kyv\u00e4 tunniste.<\/p>\n<p>Katsotaanpa esimerkki\u00e4. Haluan luoda joukkotoiminnon postausten julkaisemista varten.<\/p>\n<pre><code>add_filter('bulk_actions-edit-post', function($bulk_actions) {\n    $bulk_actions['change-to-published'] = __('Change to published', 'txtdomain');\n    return $bulk_actions;\n});<\/code><\/pre>\n<p>Jos tallennat ja p\u00e4ivit\u00e4t viestien muokkausn\u00e4yt\u00f6n, sinun pit\u00e4isi n\u00e4hd\u00e4 vaihtoehtosi avattavassa valikossa.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153003-61e50168c2dcc.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153003-61e50168c2dcc.png\" alt=\"Opetusohjelma: Kuinka lis\u00e4t\u00e4 mukautettu joukkotoiminto WordPress Adminissa\" ><\/a><\/p>\n<p>T\u00e4ll\u00e4 hetkell\u00e4 mukautettu joukkotoimintomme toimii t\u00e4ysin zip. Se on seuraava askel.<\/p>\n<h2>Muokatun joukkotoimintomme saaminen tekem\u00e4\u00e4n jotain<\/h2>\n<p>Liipaistaaksemme jotain valitessasi \u00e4skett\u00e4in lis\u00e4tty\u00e4 vaihtoehtoamme dropwonissa kiinnit\u00e4mme suodattimen <code>handle_bulk_actions-&lt;screen&gt;<\/code>. Katso mahdolliset n\u00e4yt\u00f6n arvot yll\u00e4 olevasta yleiskatsauksesta. Ilmeisesti kahvan koukun tulee olla sama n\u00e4ytt\u00f6 kuin n\u00e4ytt\u00f6, johon lis\u00e4sit joukkotoiminnon ensimm\u00e4isess\u00e4 vaiheessa.<\/p>\n<p>Sinulla on kolme mahdollista argumenttia t\u00e4ss\u00e4 suodattimessa. Ensimm\u00e4inen \u2013 se jonka palautat \u2013 on itse asiassa URL-osoite, johon WordPressin tulee uudelleenohjata, kun joukkotoimintosi on valmis. Toinen argumentti on pudotusvalikosta valitun toiminnon nimi. Kolmanneksi on joukko kaikkia elementtitunnuksia, jotka on tarkistettu joukkotoimintoa varten. N\u00e4m\u00e4 ovat elementtej\u00e4, joihin meid\u00e4n on sovellettava toimintaamme.<\/p>\n<pre><code>add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {\n    if ($action == 'change-to-published') {\n        foreach ($post_ids as $post_id) {\n            wp_update_post([\n                'ID' =&gt; $post_id,\n                'post_status' =&gt; 'publish'\n            ]);\n        }\n        $redirect_url = add_query_arg('changed-to-published', count($post_ids), $redirect_url);\n    }\n    return $redirect_url;\n}, 10, 3);<\/code><\/pre>\n<p>Katsotaanpa, mit\u00e4 yll\u00e4 oleva koodi tekee vaihe vaiheelta. Ensin meid\u00e4n on tarkistettava, oliko suoritettu joukkotoiminto todella mukautettu toimintomme; <code>change-to-published<\/code>. Ja sitten on meid\u00e4n teht\u00e4v\u00e4mme tehd\u00e4 mit\u00e4 haluamme kaikilla tunnuksilla.<\/p>\n<p>Yll\u00e4 oleva koodi kiert\u00e4\u00e4 kaikkien viestitunnusten l\u00e4pi ja toimii <code>wp_update_post()<\/code>jokaisessa muuttaakseen niiden julkaisun tilan julkaistuksi. (Jos haluat t\u00e4m\u00e4n olevan tehokasta, sinun kannattaa harkita vain niiden p\u00e4ivitt\u00e4mist\u00e4, joita ei todellakaan ole viel\u00e4 julkaistu).<\/p>\n<p>Kun olemme suorittaneet valitut elementit, meid\u00e4n on luotava URL-osoite, johon uudelleenohjataan WordPressin valmistumisen j\u00e4lkeen. Lis\u00e4\u00e4mme mukautetun argumentin annettuun uudelleenohjaus-URL-osoitteeseen. T\u00e4m\u00e4 on valinnainen, mutta v\u00e4ltt\u00e4m\u00e4t\u00f6nt\u00e4, jos haluamme n\u00e4ytt\u00e4\u00e4 j\u00e4rjestelm\u00e4nvalvojan ilmoituksen. Voimme lis\u00e4t\u00e4 mit\u00e4 haluat. Mutta yll\u00e4 olevassa esimerkiss\u00e4 lis\u00e4\u00e4mme yksinkertaisesti uuden kyselyn argin, jonka <code>add_query_arg()<\/code>asetus on &#8217; <code>changed-to-published<\/code>&#8217; niiden viestitunnusten m\u00e4\u00e4r\u00e4\u00e4n, joihin t\u00e4m\u00e4 vaikuttaa. T\u00e4m\u00e4 on hy\u00f6dyllist\u00e4 tietoa ilmoitusta varten.<\/p>\n<h2>N\u00e4yt\u00e4 ilmoitus, kun mukautettu joukkotoimintomme on tehty<\/h2>\n<p>Jos suoritat mukautetun joukkotoimintomme nyt, huomaat, ett\u00e4 kun WordPress on suorittanut joukkotoiminnon, se lataa sivun uudelleen seuraavan URL-osoitteen kanssa: &quot;wp-admin\/edit.php?changed-to-published=2&quot;. &quot;2&quot; on niiden viestien m\u00e4\u00e4r\u00e4, joihin olemme soveltaneet toimintoamme. T\u00e4m\u00e4n avulla voimme lis\u00e4t\u00e4 mukautetun j\u00e4rjestelm\u00e4nvalvojan ilmoituksen, joka k\u00e4ynnistyy, jos &quot;muutettu julkaistuksi&quot; on asetettu.<\/p>\n<p>Voimme k\u00e4ytt\u00e4\u00e4 toimintoa j\u00e4rjestelm\u00e4nvalvojan ilmoitusten n\u00e4ytt\u00e4miseksi <code>admin_notices<\/code>. Tarkistamme PHP:n globaalin muuttujan, <code>$_REQUEST<\/code>joka on t\u00e4ytetty lomakkeella l\u00e4hetetyill\u00e4 arvoilla, jos &#8217; <code>changed-to-published<\/code>&#8217; on olemassa. Jos n\u00e4in on, se tarkoittaa, ett\u00e4 mukautettu joukkotoimintomme suoritettiin juuri. N\u00e4yt\u00e4mme sitten teksti\u00e4, mukaan lukien k\u00e4ytettyjen viestien m\u00e4\u00e4r\u00e4.<\/p>\n<pre><code>add_action('admin_notices', function() {\n    if (!empty($_REQUEST['changed-to-published'])) {\n        $num_changed = (int) $_REQUEST['changed-to-published'];\n        printf('&lt;div id=\"message\" class=\"updated notice is-dismissable\"&gt;&lt;p&gt;'. __('Published %d posts.', 'txtdomain'). '&lt;\/p&gt;&lt;\/div&gt;', $num_changed);\n    }\n});<\/code><\/pre>\n<p>Ja siin\u00e4 se!<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153003-61e50169c2e34.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153003-61e50169c2e34.png\" alt=\"Opetusohjelma: Kuinka lis\u00e4t\u00e4 mukautettu joukkotoiminto WordPress Adminissa\" ><\/a><\/p>\n<h2>Muut mukautetun joukkotoiminnon k\u00e4ytt\u00f6tavat<\/h2>\n<p>Muista, ett\u00e4 <code>handle_bulk_actions-&lt;screen&gt;<\/code>koukussa voit tehd\u00e4 valituille elementeille periaatteessa mit\u00e4 tahansa. Voit p\u00e4ivitt\u00e4\u00e4 mukautetun viestisis\u00e4ll\u00f6n, muuttaa k\u00e4ytt\u00e4jien rooleja, l\u00e4hett\u00e4\u00e4 s\u00e4hk\u00f6postia tai l\u00e4hett\u00e4\u00e4 HTTP-pyynn\u00f6n johonkin kolmannen osapuolen sovellukseen.<\/p>\n<p>Esimerkiksi; jos halusit joukkotoiminnon p\u00e4ivitt\u00e4\u00e4ksesi mukautetun viestisis\u00e4ll\u00f6n, joka ilmoittaa, onko viestit vahvistettu vai ei, k\u00e4ytt\u00e4m\u00e4ll\u00e4 mukautettua joukkotoimintoa avaimella &quot; <code>mark-as-verified<\/code>&quot;:<\/p>\n<pre><code>add_filter('handle_bulk_actions-edit-post', function($redirect_url, $action, $post_ids) {\n    if ($action == 'mark-as-verified') {\n        foreach ($post_ids as $post_id) {\n            update_post_meta($post_id, 'verified', '1');\n        }\n        $redirect_url = add_query_arg('mark-as-verified', count($post_ids), $redirect_url);\n    }\n    return $redirect_url;\n}, 10, 3);<\/code><\/pre>\n<p>Yhdist\u00e4 yll\u00e4 oleva muokattuun sarakkeeseen, joka n\u00e4ytt\u00e4\u00e4 &quot;vahvistetun&quot; arvon viestiluetteloissa \u2013 kuten <a href=\"https:\/\/awhitepixel.com\/blog\/how-to-modify-or-add-custom-columns-to-post-list-in-wordpress-admin\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">teimme t\u00e4ss\u00e4 viestiss\u00e4<\/a>, ja se on erityisen hy\u00f6dyllinen.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153003-61e5016adc6a5.gif\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153003-61e5016adc6a5.gif\" alt=\"Opetusohjelma: Kuinka lis\u00e4t\u00e4 mukautettu joukkotoiminto WordPress Adminissa\" ><\/a><\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/awhitepixel.com\" class=\"external external_icon\">awhitepixel.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4ss\u00e4 viestiss\u00e4 tarkastelemme, kuinka lis\u00e4t\u00e4 mukautettu joukkotoiminto WordPress-j\u00e4rjestelm\u00e4nvalvojaan &#8211; joka voidaan lis\u00e4t\u00e4 viestiluetteloon, kommentteihin, k\u00e4ytt\u00e4jiin ja laajennusn\u00e4ytt\u00f6ihin,<\/p>\n","protected":false},"author":1,"featured_media":221177,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[895,719,719,895,917,917,1110,843,803,803,843,864,864],"tags":[1166],"class_list":{"0":"post-233524","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-koodi","8":"category-kehittaejae","11":"category-muut","13":"category-n-a","14":"category-opetusohjelmia","15":"category-php-5","18":"category-wordpress-5","20":"tag-affiai-fi"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=233524"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/233524\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/221177"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=233524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=233524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=233524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}