{"id":233321,"date":"2023-02-11T20:13:00","date_gmt":"2023-02-11T17:13:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233321"},"modified":"2022-11-10T20:28:18","modified_gmt":"2022-11-10T17:28:18","slug":"kuidas-wordpressi-administraatoris-postituste-loendisse-kohandatud-veerge-muuta-voi-lisada","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kuidas-wordpressi-administraatoris-postituste-loendisse-kohandatud-veerge-muuta-voi-lisada\/","title":{"rendered":"Kuidas WordPressi administraatoris postituste loendisse kohandatud veerge muuta v\u00f5i lisada"},"content":{"rendered":"\n<p>WordPress v\u00f5imaldab teil administraatoripaneelil postituste, lehtede v\u00f5i mis tahes kohandatud postituse t\u00fc\u00fcbi loendit muuta ja veerge lisada. Selles postituses uurime, kuidas!<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-153990-61e5180a562a1.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-153990-61e5180a562a1.png\" alt=\"Kuidas WordPressi administraatoris postituste loendisse kohandatud veerge muuta v\u00f5i lisada\" ><\/a><\/p>\n<p>Arvestada tuleb kahe konksuga: \u00fcks filter veeru asukoha ja pealkirja jaoks ning \u00fcks toiming veeru v\u00e4ljundi jaoks iga postituse jaoks. Postituse t\u00fc\u00fcp on osa konksude nimedest. Vaatame neid \u00fckshaaval, alustades filtrist.<\/p>\n<h2>Kolonni filter<\/h2>\n<p>Filter WordPressi halduspaneeli postituste loendisse veergude muutmiseks, eemaldamiseks v\u00f5i lisamiseks on <code>manage_{$post_type}_posts_columns<\/code>. Vahetage <code>{$post_type}<\/code>soovitud postitust\u00fc\u00fcbiga. N\u00e4iteks; kui soovite muuta postituse t\u00fc\u00fcbi \u201e <code>post<\/code>&quot; veerge, on filtri nimi <code>manage_post_posts_columns<\/code>. Ja kohandatud postituse t\u00fc\u00fcbi \u201e <code>product<\/code>&#8221; puhul oleks filtri nimi <code>manage_product_posts_columns<\/code>.<\/p>\n<p>PS: WordPressil on veerufilter ainult postituse t\u00fc\u00fcbi jaoks &#8216; <code>page<\/code>&#8216;: <code>manage_pages_columns<\/code>, kuid sama tulemuse saate filtrit kasutades <code>manage_page_posts_columns<\/code>.<\/p>\n<p>Filtri argumendina saate selle postituse t\u00fc\u00fcbi k\u00f5igi veergude t\u00e4ieliku massiivi. Igal veerul on kordumatu v\u00f5ti ja nende v\u00e4\u00e4rtused on veerup\u00e4ises n\u00e4idatud sildid. V\u00f5tmed on <code>cb<\/code>n\u00e4iteks m\u00e4rkeruudu veeru <code>title<\/code>jaoks &quot; &quot; ja postituse pealkirja veeru jaoks &quot; &quot;. Elementide j\u00e4rjekord massiivis m\u00e4\u00e4rab veergude j\u00e4rjestuse.<\/p>\n<p>Uue veeru lisamiseks peate lihtsalt massiivile uue v\u00f5tme + v\u00e4\u00e4rtuse paari lisama ja selle tagastama. Saate massiivi vastavalt soovile manipuleerida \u2013 n\u00e4iteks seda \u00fcmber j\u00e4rjestada.<\/p>\n<h2>Veeru sisu konks<\/h2>\n<p>Millist konksu peate veeru sisu v\u00e4ljundi juhtimiseks kasutama, s\u00f5ltub sellest, kas teie postituse t\u00fc\u00fcp on seatud hierarhiliseks v\u00f5i mitte. Hierarhiline postituse t\u00fc\u00fcp on m\u00e4\u00e4ratletud nagu <code>'hierarchical' =&gt; true<\/code>. <code>register_post_type<\/code>K\u00f5ik mittehierarhilised postitust\u00fc\u00fcbid, sealhulgas WordPressi sisseehitatud postituse t\u00fc\u00fcp <code>post<\/code>, kasutavad konksu nime <code>manage_{$post_type}_custom_column<\/code>. K\u00f5ik hierarhilised postitust\u00fc\u00fcbid, sealhulgas WordPressi sisseehitatud postituse t\u00fc\u00fcp &#8216; <code>page<\/code>&#8216;, kasutavad konksu nime <code>manage_pages_custom_column<\/code>(m\u00e4rkus: konksu nimetusse ei sisestata postituse t\u00fc\u00fcbi nime).<\/p>\n<p>Selle konksu argumentidena saate veeru nime, mis on \u00fclaltoodud veerufiltris mainitud v\u00f5ti (nt <code>cb<\/code>m\u00e4rkeruudu veeru jaoks &quot; &quot;), ja teiseks postituse ID. Seda konksu k\u00e4ivitatakse iga postituse puhul ja p\u00f5hieeldus on see, et kontrollite, kas oleme \u00f5iges veerut\u00fc\u00fcbis v\u00f5i mitte (v\u00f5tme j\u00e4rgi), ja kui oleme, kasutage postituse ID-d postituse meta vms toomiseks ja selle v\u00e4ljastamiseks sa soovid.<\/p>\n<h2>N\u00e4ited<\/h2>\n<p>Vaatame m\u00f5nda praktiliste n\u00e4idete koodi.<\/p>\n<h3>Lisage postitustele kohandatud veerg, mis kuvab kohandatud postituse meta<\/h3>\n<p>See on kohandatud veergude lisamise lihtsaim viis. Oletame, et tahame lisada kohandatud veeru postituse t\u00fc\u00fcbile \u201epostitus&#8221;. Soovime, et see oleks veergude l\u00f5pus, nimega \u201eKinnitatud&#8221;, ja see peaks s\u00f5ltuvalt kohandatud postituse metav\u00e4\u00e4rtusest v\u00e4ljastama \u201eJah&#8221; v\u00f5i \u201eEi&#8221;. M\u00e4rkus. See n\u00e4ide ei h\u00f5lma kohandatud postituse meta salvestamist ega v\u00e4rskendamist.<\/p>\n<p><code>functions.php<\/code>Lisame oma teemas v\u00f5i pistikprogrammi koodis v\u00f5i suvalises kohas veeru enda, \u00fchendades selle veergude massiivi, ning veeru v\u00e4ljundi konksus toome postituse meta v\u00e4\u00e4rtuse ja v\u00e4ljastame selle .<\/p>\n<pre><code>add_filter('manage_post_posts_columns', function($columns) {\n    return array_merge($columns, ['verified' =&gt; __('Verified', 'textdomain')]);\n});\n\u00a0\nadd_action('manage_post_posts_custom_column', function($column_key, $post_id) {\n    if ($column_key == 'verified') {\n        $verified = get_post_meta($post_id, 'verified', true);\n        if ($verified) {\n            echo '&lt;span style=\"color:green;\"&gt;'; _e('Yes', 'textdomain'); echo '&lt;\/span&gt;';\n        } else {\n            echo '&lt;span style=\"color:red;\"&gt;'; _e('No', 'textdomain'); echo '&lt;\/span&gt;';\n        }\n    }\n}, 10, 2);<\/code><\/pre>\n<p>V\u00e4ljund v\u00f5ib olla \u00fcksk\u00f5ik milline, ma lihtsalt lisasin <code>span<\/code>v\u00e4ljundi \u00fcmber erinevate tekstiv\u00e4rvidega, et neid oleks lihtne tuvastada.<\/p>\n<h3>Lisage kohandatud veerg hierarhilisele kohandatud postituse t\u00fc\u00fcbile, mis kuvab selle esivanema postituse<\/h3>\n<p>Kui postituse t\u00fc\u00fcp on hierarhiline, v\u00f5ivad postitused sisaldada emapostitusi. Oletame, et meil on kooliainete jaoks hierarhiline kohandatud postituse t\u00fc\u00fcp &quot; <code>subject<\/code>&quot;, kus on kombeks teha palju lastepostitusi ja isegi laste postitusi. Parema \u00fclevaate saamiseks tahame lisada veeru, mis kuvab postituse esivanema (&#8220;juurteema&#8221;). Kui postitus on tipptaseme postitus, n\u00e4idatakse lihtsat &#8216;-&#8216;, vastasel juhul v\u00e4ljastab veerg postituse redigeerimise lingis esivanema \u00fclempostituse pealkirja.<\/p>\n<p>Kuna me viitame hierarhilisele postitust\u00fc\u00fcbile, peame veeru sisu v\u00e4ljastamiseks kasutama \u00fclaltoodud n\u00e4itest erinevat konksu, kuid protsess on t\u00e4pselt sama.<\/p>\n<p>See kood n\u00e4itab ka n\u00e4idet, kuidas sisestada veerg veergude massiivi keskele. M\u00e4\u00e4ratleme, et meie veerg peaks asuma enne s\u00f5na \u201eautor&#8221; ja kasutama PHP massiivi funktsioone, et sisestada element \u00f5igesse asendisse.<\/p>\n<pre><code>add_filter('manage_subject_posts_columns', function($columns) {\n    $offset = array_search('author', array_keys($columns));\n    return array_merge(array_slice($columns, 0, $offset), ['ancestor' =&gt; __('Ancestor', 'textdomain')], array_slice($columns, $offset, null));\n});\n\u00a0\nadd_action('manage_pages_custom_column', function($column_key, $post_id) {\n    if ($column_key == 'ancestor') {\n        $ancestors = get_ancestors($post_id, 'subject', 'post_type');\n        $post_ancestor = end($ancestors);\n        if ($post_ancestor != 0) {\n            echo '&lt;a href=\"'. get_edit_post_link($post_ancestor). '\"&gt;'. get_the_title($post_ancestor). '&lt;\/a&gt;';\n        } else {\n            echo '-';\n        }\n    }\n}, 10, 2);<\/code><\/pre>\n<h3>Veeru eemaldamine<\/h3>\n<p>Veeru eemaldamine postituse t\u00fc\u00fcbist on \u00fcsna lihtne; k\u00f5ik, mida vajate, on postituste veerud filtreerida, element massiivist eemaldada ja tagastada. Te ei pea veeru v\u00e4ljundkonksu k\u00fclge haakima. N\u00e4iteks; vaikeveeru \u201e <code>date<\/code>&#8221; eemaldamine postituse t\u00fc\u00fcbist \u201e <code>post<\/code>&#8220;:<\/p>\n<pre><code>add_filter('manage_post_posts_columns', function($columns) {\n    unset($columns['date']);\n    return $columns;\n});<\/code><\/pre>\n<h3>Vaikimisi veergude nimede v\u00f5i positsiooni muutmine<\/h3>\n<p>Oletame, et meil on kohandatud postituse t\u00fc\u00fcp <code>book<\/code>ja me tahame asendada veeru vaikenime &quot;Autor&quot; s\u00f5naga &quot;Publisher&quot;. Me lihtsalt filtreerime veergude filtri ja anname v\u00f5tmele &#8216; <code>author<\/code>&#8216; teise v\u00e4\u00e4rtuse:<\/p>\n<pre><code>add_filter('manage_book_posts_columns', function($columns) {\n    $columns['author'] = __('Publisher', 'textdomain');\n    return $columns;\n});<\/code><\/pre>\n<p>Veergude \u00fcmberj\u00e4rjestamist saab teha PHP massiivi funktsioonide abil. Pidage meeles, et nende tulemuseks olev massiiv peab olema assotsiatiivne massiiv, mille v\u00f5tmeteks on veerg \u201eID&#8221; ja v\u00e4\u00e4rtusteks on nende silt. See on lihtne n\u00e4ide veeru &#8216; &#8216; v\u00e4lja v\u00f5tmisest <code>author<\/code>ja selle k\u00f5ige l\u00f5ppu asetamisest, mis muudab veergude j\u00e4rjestuse:<\/p>\n<pre><code>add_filter('manage_post_posts_columns', function($columns) {\n    $taken_out = $columns['author'];\n    unset($columns['author']);\n    $columns['author'] = $taken_out;\n    return $columns;\n});<\/code><\/pre>\n<h3>Kohandatud veeru m\u00e4\u00e4ramine sorteeritavaks<\/h3>\n<p>Vaikimisi on m\u00f5ned WordPressi veerud sorteeritavad, n\u00e4iteks postituse pealkiri, kommentaaride arv ja kuup\u00e4ev. Kohandatud veeru on v\u00f5imalik sorteeritavaks muuta, kuid selleks on vaja natuke rohkem koodi ja haakumist WordPressi postitusp\u00e4ringu konksuga, et WordPressile postituse meta j\u00e4rgi j\u00e4rjestada, kuidas j\u00e4rjestada.<\/p>\n<p>Oletame, et meil on kohandatud postituse t\u00fc\u00fcp &quot; <code>movie<\/code>&quot; ja j\u00e4rgmise koodiga lisame kohandatud veeru, mis kuvab kohandatud postituse meta &quot; <code>duration<\/code>&quot;.<\/p>\n<pre><code>add_filter('manage_movie_posts_columns', function($columns) {\n    return array_merge($columns, ['duration' =&gt; __('Duration', 'textdomain')]);\n});\n\u00a0\nadd_action('manage_movie_posts_custom_column', function($column_key, $post_id) {\n    if ($column_key == 'duration') {\n        $duration = get_post_meta($post_id, 'duration', true);\n        echo (!empty($duration))? sprintf(__('%s minutes', 'textdomain'), $duration): __('Unknown', 'textdomain');\n    }\n}, 10, 2);<\/code><\/pre>\n<p>Selleks, et \u00f6elda WordPressile, et tahame, et meie veerg oleks sorteeritav, peame haakima filtriga <code>manage_edit-{$post_type}_sortable_columns<\/code>. Lisame oma veeru filtreeritavate veergude massiivi ja seej\u00e4rel m\u00e4\u00e4ratleme, milline <code>orderby<\/code>peaks olema &#8216; &#8216; v\u00e4\u00e4rtus. Seadsime seal ainulaadse kohandatud v\u00e4\u00e4rtuse \u2013 sama nime, mis meie veerul \u2013, millele saame hiljem oma p\u00e4ringukonksus viidata.<\/p>\n<pre><code>add_filter('manage_edit-movie_sortable_columns', function($columns) {\n    $columns['duration'] = 'duration';\n    return $columns;\n});<\/code><\/pre>\n<p>Kui v\u00e4rskendate WordPressi praegu, peaksite n\u00e4gema, et meie kohandatud veerg on t\u00f5epoolest kl\u00f5psatav ja sorteeritav, kuid see ei sorteeri \u00f5igesti. P\u00f5hjus on selles, et WordPress ei m\u00f5ista \u201e <code>duration<\/code>&#8221; kui \u201e <code>orderby<\/code>&#8221; v\u00e4\u00e4rtust. Selle parandame, \u00fchendades \u00fcksuse &quot; <code>pre_get_posts<\/code>&quot;:<\/p>\n<pre><code>add_action('pre_get_posts', function($query) {\n    if (!is_admin()) {\n        return;\n    }\n    $orderby = $query-&gt;get('orderby');\n    if ($orderby == 'duration') {\n        $query-&gt;set('meta_key', 'duration');\n        $query-&gt;set('orderby', 'meta_value_num');\n    }\n});<\/code><\/pre>\n<p>Kuna meie kohandatud postituse meta &quot; <code>duration<\/code>&quot; on alati arv, saame arvude v\u00f5rdlemiseks m\u00e4\u00e4ratleda &quot; <code>orderby<\/code>&quot; kui &quot; &quot;. <code>meta_value_num<\/code>Kohandage p\u00e4ringu argumente, et need sobiksid teie kohandatud postituse metav\u00e4\u00e4rtustega.<\/p>\n<h3>Keela vaikeveergude sortimine<\/h3>\n<p>Vaikeveeru sortimise keelamine on \u00fcsna lihtne. K\u00f5ik, mida me peame tegema, on haakida filtrisse <code>manage_edit-{$post_type}_sortable_columns<\/code>ja eemaldada massiivist veerg, mida me ei soovi sorteerida. N\u00e4iteks eemaldab see kuup\u00e4eva veeru sortimise postituse t\u00fc\u00fcbi &quot; <code>post<\/code>&quot; puhul.<\/p>\n<pre><code>add_filter('manage_edit-post_sortable_columns', function($columns) {\n    unset($columns['date']);\n    return $columns;\n});<\/code><\/pre>\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>Selles postituses kirjeldatakse p\u00f5hjalikult, kuidas WordPressi administraatoripaneelil postituste loendit, lehti v\u00f5i mis tahes kohandatud postitust\u00fc\u00fcpi muuta v\u00f5i veerge lisada.<\/p>\n","protected":false},"author":1,"featured_media":223841,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,718,833,894,1110,842,802,802,833,842,863,863],"tags":[1165],"class_list":{"0":"post-233321","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","6":"hentry","7":"category-arendaja","8":"category-kood","10":"category-juhend-algajatele","12":"category-n-a","13":"category-opetused","14":"category-php-4","18":"category-wordpress-4","20":"tag-affiai-et"},"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233321","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=233321"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233321\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/223841"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233321"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233321"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233321"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}