Acțiuni pentru rânduri în tipuri de postări personalizate?

18 apr. 2011, 07:36:16
Vizualizări: 20.5K
Voturi: 20

Lucrez la un plugin care transformă un site într-un portal de feedback. Am creat o nouă pagină pentru obiecte, 'Feedbacks', care afișează toate feedback-urile într-un format tabelar și folosesc register_column_headers($array_of_column_headers) pentru a crea tabelul meu. Aș dori să știu dacă este posibil să adaug propriile acțiuni de rând în acest tabel, adică sub fiecare feedback din listă, acțiuni precum 'aprobă', 'șterge', 'blacklist' etc.

Am citit codul și câteva ticket-uri și am descoperit că se face în acest fel: pentru postări este post_row_actions, pentru comentarii este comment_row_actions, pentru media este media_row_actions și așa mai departe. Există un filtru care îmi permite să fac my-page-slug_row_actions?

0
Toate răspunsurile la întrebare 1
8
26

Când folosești un tip de postare personalizat (custom post type), poți utiliza filtrul post_row_actions și să verifici tipul de postare pentru a-l modifica doar pentru acesta:

add_filter('post_row_actions', 'my_action_row', 10, 2);

function my_action_row($actions, $post){
    // verifică tipul tău de postare
    if ($post->post_type == "feedbacks"){
        /* poți face modificări aici
        poți elimina acțiuni folosind unset
        și poți adăuga acțiuni, ex:
        $actions['in_google'] = '<a href="http://www.google.com/?q='.get_permalink($post->ID).'">verifică dacă este indexat</a>';
        */
    }
    return $actions;
}

Actualizare rapidă:

mulțumiri lui somatic dacă tipul tău de postare personalizat este "ierarhic" (hierarchical), atunci hook-ul tău de acțiune este: page_row_actions.

18 apr. 2011 09:28:21
Comentarii

Variabila $post are domeniu de aplicare? hint hint ;)

t31os t31os
18 apr. 2011 14:38:11

@t310s Am rezolvat @Bainternet sper că nu te superi ,)

kaiser kaiser
18 apr. 2011 15:37:23

@kaiser: Și am îmbunătățit soluția ta!

Jan Fabry Jan Fabry
18 apr. 2011 16:31:20

Salut, am folosit deja 'post_row_actions' pentru a adăuga un link în rândurile postărilor personalizate. Dar vreau să fac același lucru pentru pagina mea de meniu, care este adăugată folosind hook-ul 'add_object_page' (care este similar cu 'add_menu_page').

add_object_page("Feedbacks", "Feedbacks", 10, "feedbacks-menu", "FeedbackMenuFunction"); add_submenu_page("feedbacks-menu", "Pending Feedbacks", "Pending", 10, "pending-feedbacks-menu", "PendingFeedbackMenuFunction")

Mă întrebam dacă aș putea face 'feedbacks-menu_row_actions(...)' (exact cum se face pentru alte pagini precum 'Postări', 'Comentarii' etc. folosind slug-ul paginii cu row actions).

Rutwick Gangurde Rutwick Gangurde
18 apr. 2011 18:31:41

Este Feedback un tip de postare personalizată? Dacă da, citește din nou răspunsul meu.

Bainternet Bainternet
18 apr. 2011 23:41:03

Nu! 'Feedback' este un comentariu la o postare personalizată, împreună cu o grămadă de metadata pentru acel comentariu! Construiesc o secțiune complet nouă cu toate aceste 'Feedback'-uri listate într-un singur loc, de unde utilizatorul le poate Previzualiza, aproba și dezaproba, șterge. Este similar cu pagina 'Comentarii', dar personalizată doar pentru a afișa 'Feedback'-uri.

Și am aflat cum să adaug row_actions la aceste rânduri. Este doar markup-ul, <td><div class='row-actions'><span class='edit'><a...>Linkul tău</a></span></div></td>. WP adaugă CSS-ul și jQuery-ul și ai meniul de acțiuni pregătit!

Rutwick Gangurde Rutwick Gangurde
19 apr. 2011 20:55:31

pentru cei care vă loviți capul de birou întrebându-vă de ce acest cod pare să nu facă nimic cu tipul vostru personalizat de postare, rețineți: dacă CPT-ul vostru este "ierarhic", atunci cârligul filtrului este "page_row_actions" și NU "post_row_actions"

[își freacă capul]

somatic somatic
5 mai 2011 08:22:04

Am încercat page_row_actions cu slug-ul paginii mele personalizate de meniu, dar nu funcționează, sau poate am ratat ceva. Dar am parcurs codul unui plugin premium foarte cunoscut care adaugă acțiuni personalizate la rândurile paginii, și am văzut că ei adaugă markup-ul direct în tabel. Am făcut la fel și funcționează perfect.

Rutwick Gangurde Rutwick Gangurde
6 mai 2011 18:53:37
Arată celelalte 3 comentarii