Acțiuni pentru rânduri în tipuri de postări personalizate?
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
?

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
.

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).

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

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!

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]

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.
