{"id":3339,"date":"2016-11-05T10:30:36","date_gmt":"2016-11-05T10:30:36","guid":{"rendered":"http:\/\/musilda.cz\/?p=3339"},"modified":"2016-11-05T10:30:36","modified_gmt":"2016-11-05T10:30:36","slug":"vlastni-hromadne-upravy-ve-wordpress-4-7","status":"publish","type":"post","link":"https:\/\/affinite.io\/cs\/vlastni-hromadne-upravy-ve-wordpress-4-7\/","title":{"rendered":"Vlastn\u00ed hromadn\u00e9 \u00fapravy ve WordPress 4.7"},"content":{"rendered":"<p>Dal\u0161\u00ed novinkou, se kterou se ve WordPress 4.7 potk\u00e1me, je mo\u017enost vytvo\u0159en\u00ed vlastn\u00ed hromadn\u00e9 \u00fapravy.<\/p>\n<p>Hromadn\u00e1 \u00faprava je zn\u00e1m\u00e1 featura WordPressu, kde si m\u016f\u017eeme v selectu vybrat, co chceme ud\u011blat s vybran\u00fdmi posty.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Vytvo\u0159en\u00ed vlastn\u00ed akce, m\u016f\u017eeme rozd\u011blit do t\u0159\u00ed krok\u016f:<\/strong><\/p>\n<ul>\n<li>P\u0159id\u00e1n\u00ed akce do v\u00fdb\u011bru<\/li>\n<li>Callback funkce pro proveden\u00ed zam\u00fd\u0161len\u00fdch \u00faprav<\/li>\n<li>Admin notice pro tuto akci<\/li>\n<\/ul>\n<p><strong>P\u0159id\u00e1n\u00ed funkce do v\u00fdb\u011bru:<\/strong><\/p>\n<p>Pro registraci funkce pou\u017eijeme filter bulk_actions-{screen-id} a na konec pole v\u00fdb\u011bru p\u0159id\u00e1me na\u0161i polo\u017eku:<\/p>\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\">add_filter( <\/code><code class=\"php string\">'bulk_actions-edit-post'<\/code><code class=\"php plain\">, <\/code><code class=\"php string\">'register_my_bulk_actions'<\/code> <code class=\"php plain\">);<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"php keyword\">function<\/code> <code class=\"php plain\">register_my_bulk_actions(<\/code><code class=\"php variable\">$bulk_actions<\/code><code class=\"php plain\">) {<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php variable\">$bulk_actions<\/code><code class=\"php plain\">[<\/code><code class=\"php string\">'moje_akce'<\/code><code class=\"php plain\">] = __( <\/code><code class=\"php string\">'Moje akce'<\/code><code class=\"php plain\">, <\/code><code class=\"php string\">'lang_domain'<\/code><code class=\"php plain\">);<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php keyword\">return<\/code> <code class=\"php variable\">$bulk_actions<\/code><code class=\"php plain\">;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"php plain\">}<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number6 index5 alt1\"><strong>Callback funkce:<\/strong><\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number6 index5 alt1\">Jako dal\u0161\u00ed krok, vytvo\u0159\u00edme callback funkci. Pou\u017eijeme filter handle_bulk_actions-{screen-edit} a ve funkci m\u016f\u017eeme pracovat s $redirect_to, $doactions a $post_ids. V redirectu m\u00e1me vlo\u017eenou url, \u010deho\u017e vyu\u017eijeme k p\u0159id\u00e1n\u00ed parametr\u016f, po \u00fasp\u011b\u0161n\u00e9m proveden\u00ed akce. V doaction je kl\u00ed\u010d z pole, jen\u017e jsme roz\u0161\u00ed\u0159ili, v tomto p\u0159\u00edpad\u011b &#8211; moje_akce. Jako posledn\u00ed prom\u011bnn\u00e1 je zde seznam id v\u0161ech post\u016f, jen\u017e m\u00e1me ozna\u010den\u00e9.<\/div>\n<div class=\"line number6 index5 alt1\">V p\u0159\u00edpad\u011b, \u017ee se jedn\u00e1 o spr\u00e1vnou akci, projdeme v\u0161echny posty a ulo\u017e\u00edme nap\u0159\u00edklad n\u011bjak\u00fd custom field, nebo cokoliv budeme cht\u00edt upravit.<\/div>\n<div class=\"line number6 index5 alt1\">Na z\u00e1v\u011br p\u0159esm\u011brujeme na upravenou url.<\/div>\n<div class=\"line number6 index5 alt1\"><\/div>\n<div class=\"line number6 index5 alt1\">\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\">add_filter( <\/code><code class=\"php string\">'handle_bulk_actions-edit-post'<\/code><code class=\"php plain\">, <\/code><code class=\"php string\">'my_bulk_action_handler'<\/code><code class=\"php plain\">, 10, 3 );<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"php keyword\">function<\/code><code class=\"php plain\">my_bulk_action_handler( <\/code><code class=\"php variable\">$redirect_to<\/code><code class=\"php plain\">, <\/code><code class=\"php variable\">$doaction<\/code><code class=\"php plain\">, <\/code><code class=\"php variable\">$post_ids<\/code><code class=\"php plain\">) {<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php keyword\">if<\/code><code class=\"php plain\">( <\/code><code class=\"php variable\">$doaction<\/code><code class=\"php plain\">!== <\/code><code class=\"php string\">'moje_akce'<\/code><code class=\"php plain\">) {<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php keyword\">return<\/code><code class=\"php variable\">$redirect_to<\/code><code class=\"php plain\">;<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php plain\">}<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php keyword\">foreach<\/code><code class=\"php plain\">( <\/code><code class=\"php variable\">$post_ids<\/code><code class=\"php keyword\">as<\/code><code class=\"php variable\">$post_id<\/code><code class=\"php plain\">) {<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php comments\">update_post_meta( $post_id, '_check_post_by_admin', 'zkontrolov\u00e1no' );\u00a0<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php plain\">}<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php variable\">$redirect_to<\/code><code class=\"php plain\">= add_query_arg( <\/code><code class=\"php string\">'bulk_moje_akce_posts'<\/code><code class=\"php plain\">, <\/code><code class=\"php functions\">count<\/code><code class=\"php plain\">( <\/code><code class=\"php variable\">$post_ids<\/code><code class=\"php plain\">), <\/code><code class=\"php variable\">$redirect_to<\/code><code class=\"php plain\">);<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php keyword\">return<\/code><code class=\"php variable\">$redirect_to<\/code><code class=\"php plain\">;<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"php plain\">}<\/code><\/div>\n<\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number12 index11 alt1\"><strong>Vlo\u017een\u00ed admin notice:<\/strong><\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number12 index11 alt1\">Admin notice, je upozorn\u011bn\u00ed, zobrazovan\u00e9 nap\u0159\u00edklad, po aktualizaci pluginu. A my si vytvo\u0159\u00edme vlastn\u00ed.<\/div>\n<div class=\"line number12 index11 alt1\"><\/div>\n<div class=\"line number12 index11 alt1\">\n<div class=\"line number1 index0 alt2\"><code class=\"php plain\">add_action( <\/code><code class=\"php string\">'admin_notices'<\/code><code class=\"php plain\">, <\/code><code class=\"php string\">'my_bulk_action_admin_notice'<\/code><code class=\"php plain\">);<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"php keyword\">function<\/code><code class=\"php plain\">my_bulk_action_admin_notice() {<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php keyword\">if<\/code><code class=\"php plain\">( ! <\/code><code class=\"php functions\">empty<\/code><code class=\"php plain\">( <\/code><code class=\"php variable\">$_REQUEST<\/code><code class=\"php plain\">[<\/code><code class=\"php string\">'bulk_moje_akce_posts'<\/code><code class=\"php plain\">] ) ) {<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php variable\">$posts_count<\/code><code class=\"php plain\">= <\/code><code class=\"php functions\">intval<\/code><code class=\"php plain\">( <\/code><code class=\"php variable\">$_REQUEST<\/code><code class=\"php plain\">[<\/code><code class=\"php string\">'bulk_moje_akce_posts'<\/code><code class=\"php plain\">] );<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php plain\">printf( <\/code><code class=\"php string\">'&lt;div id=\"message\" class=\"updated fade\"&gt;'<\/code><code class=\"php plain\">.<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php plain\">_n( <\/code><code class=\"php string\">'Zkotrolov\u00e1no %s \u010dl\u00e1nk\u016f.'<\/code><code class=\"php plain\">,<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php string\">'Zkotrolov\u00e1no %s \u010dl\u00e1nk\u016f.'<\/code><code class=\"php plain\">,<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php variable\">$posts_count <\/code><code class=\"php plain\">,<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php string\">'moje_akce'<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"php spaces\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/code><code class=\"php plain\">) . <\/code><code class=\"php string\">'&lt;\/div&gt;'<\/code><code class=\"php plain\">, <\/code><code class=\"php variable\">$posts_count <\/code><code class=\"php plain\">);<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"php spaces\">\u00a0\u00a0<\/code><code class=\"php plain\">}<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"php plain\">}<\/code><\/div>\n<\/div>\n<div class=\"line number13 index12 alt2\"><\/div>\n<div class=\"line number13 index12 alt2\">Mysl\u00edm, \u017ee toto vylep\u0161en\u00ed bude m\u00edt velk\u00e9 pou\u017eit\u00ed, pro zjednodu\u0161en\u00ed pr\u00e1ce s v\u011bt\u0161\u00edm mno\u017estv\u00ed obsahu.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dal\u0161\u00ed novinkou, se kterou se ve WordPress 4.7 potk\u00e1me, je mo\u017enost vytvo\u0159en\u00ed vlastn\u00ed hromadn\u00e9 \u00fapravy. Hromadn\u00e1 \u00faprava je zn\u00e1m\u00e1 featura WordPressu, kde si m\u016f\u017eeme v selectu vybrat, co chceme ud\u011blat s vybran\u00fdmi posty. &nbsp; Vytvo\u0159en\u00ed vlastn\u00ed akce, m\u016f\u017eeme rozd\u011blit do t\u0159\u00ed krok\u016f: P\u0159id\u00e1n\u00ed akce do v\u00fdb\u011bru Callback funkce pro proveden\u00ed zam\u00fd\u0161len\u00fdch \u00faprav Admin notice pro<\/p>\n","protected":false},"author":1,"featured_media":8647,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[48,30],"tags":[107,469],"class_list":["post-3339","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-novinky","category-wordpress","tag-custom-bulk-action","tag-wordpress-4-7"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu.png",1200,800,false],"thumbnail":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu-150x150.png",150,150,true],"medium":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu-300x200.png",300,200,true],"medium_large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu-768x512.png",640,427,true],"large":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu-1024x683.png",640,427,true],"1536x1536":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu.png",1200,800,false],"2048x2048":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu.png",1200,800,false],"archive-list":["https:\/\/affinite.io\/cs\/wp-content\/uploads\/sites\/2\/2017\/09\/novinky-ze-sveta-wordpressu-400x265.png",400,265,true]},"uagb_author_info":{"display_name":"Affinite","author_link":"https:\/\/affinite.io\/cs\/author\/affinite\/"},"uagb_comment_info":4,"uagb_excerpt":"Dal\u0161\u00ed novinkou, se kterou se ve WordPress 4.7 potk\u00e1me, je mo\u017enost vytvo\u0159en\u00ed vlastn\u00ed hromadn\u00e9 \u00fapravy. Hromadn\u00e1 \u00faprava je zn\u00e1m\u00e1 featura WordPressu, kde si m\u016f\u017eeme v selectu vybrat, co chceme ud\u011blat s vybran\u00fdmi posty. &nbsp; Vytvo\u0159en\u00ed vlastn\u00ed akce, m\u016f\u017eeme rozd\u011blit do t\u0159\u00ed krok\u016f: P\u0159id\u00e1n\u00ed akce do v\u00fdb\u011bru Callback funkce pro proveden\u00ed zam\u00fd\u0161len\u00fdch \u00faprav Admin notice pro","_links":{"self":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/3339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/comments?post=3339"}],"version-history":[{"count":0,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/posts\/3339\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media\/8647"}],"wp:attachment":[{"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/media?parent=3339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/categories?post=3339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/affinite.io\/cs\/wp-json\/wp\/v2\/tags?post=3339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}