X

Afișați meniul tipului de postare personalizat ca submeniu

Fragmente de IsItWP

Doriți să afișați tipul de postare personalizat ca un submeniu în meniul de editare a postărilor? Deși probabil există un plugin pentru asta, am creat un fragment de cod rapid pe care îl puteți folosi pentru a afișa meniul tipului de postare personalizat ca submeniu în WordPress.

Instrucțiuni:

Tot ce trebuie să faceți este să adăugați acest cod în fișierul functions.php al temei dvs. sau într-un plugin specific site-ului:

function nacin_register_slideshows_post_type() {
	register_post_type( 'slideshow', array(
		'labels' => array(
			'name' => 'Slideshows',
			'singular_name' => 'Slideshow',
		),
		'public' => true,
		'show_ui' => true,
		'show_in_menu' => 'edit.php',
		'supports' => array( 'title' ,'thumbnail', 'editor' ),
	) );
}
add_action( 'init', 'nacin_register_slideshows_post_type' );

Notă: Dacă aceasta este prima dată când adăugați fragmente de cod în WordPress, consultați ghidul nostru despre cum să adăugați corect fragmente de cod în WordPress, pentru a nu vă defecta accidental site-ul.

Dacă v-a plăcut acest fragment de cod, vă rugăm să luați în considerare să consultați celelalte articole ale noastre de pe site, cum ar fi: cele mai bune 43 de teme de fotografie pentru WordPress și cum să creați un formular de contact în WordPress.

Comentarii   Lasă un răspuns

  1. Mochammad Taufiq November 26, 2013 at 2:12 am

    înregistrez post_type cu adăugare element nou, dar „adăugare element nou” nu apare în submeniu, aveți vreo sugestie pentru problema mea?

  2. Frumos. Încerc să duc acest lucru mai departe și să atașez tipul de postare la o pagină de meniu personalizată. Până acum, fără succes... aveți vreo idee?

    1. Întrebarea dvs. este veche, dar cred că acest lucru ar putea fi util pentru altcineva.
      Mi-am petrecut mult timp căutând prin codul sursă WP pentru a face același
      lucru: am un meniu personalizat creat folosind add_menu_page(). Acesta are o
      serie de elemente de submeniu. Am un tip de postare personalizat care este legat de acest meniu și
      doream ca linkurile de adăugare / listare pentru acel tip de postare să fie elemente de submeniu.

      Răspuns scurt: Nu există o modalitate ușoară de a face acest lucru în WP. Modul în care
      generază meniurile și interfața utilizator pentru tipurile de postări personalizate înseamnă că nu există o simplă comandă pe care o puteți face.

      Soluție:
      1. Înregistrați tipul de postare cu următoarele
      opțiuni:
      „show_ui” => true,
      „show_in_menu” => false
      În
      acest exemplu, tipul meu de postare personalizat este acct_notes

      2. În fișierul functions.php al temei dvs. sau în fișierul pluginului, adăugați o acțiune la
      admin_menu:
      add_action(‘admin_menu’,
      ‘modify_admin_menus’);

      3. Adăugați submenu_pages pentru cele două linkuri UI ale postărilor — listare postări, creare postare nouă.
      Primul parametru este slug-ul meniului la care îl adăugați. Al doilea
      este numele care va apărea pe pagină. Al treilea este cum va apărea linkul.
      Al patrulea este capacitatea necesară pentru a-l accesa. Al cincilea este slug-ul
      pentru acest element de meniu. Și ultimul este funcția care va genera ieșirea.
      În acest caz, nu o vom folosi, așa că putem trece NULL.

      add_submenu_page(‘members’, ‘Account Notes’, ‘Account Notes’,
      ‘manage-options’, ‘view_account_notes’, NULL);

      4. Ultimul pas este funcția care va modifica acele linkuri de submeniu, astfel încât
      să direcționeze către paginile UI corecte ale postărilor.

      function modify_admin_menus(){
      global $submenu;

      if(array_key_exists(‘members’, $submenu)){

      foreach($submenu[‘members’] as $key => $value){
      $k =
      array_search(‘view_account_notes’, $value);
      if($k){

      $submenu[‘members’][$key][$k] =
      (current_user_can($submenu[‘members’][$key][1]))?
      admin_url(‘/edit.php?post_type=acct_notes’):”;
      }

      $l = array_search(‘new_account_note’, $value);

      if($l){
      $submenu[‘members’][$key][$l] =
      (current_user_can($submenu[‘members’][$key][1]))?
      admin_url(‘/post-new.php?post_type=dojo_acct_notes’) : ”;}

      }
      }
      }

      Ce se întâmplă în funcție este că verifică tabloul global $submenu pentru a vedea dacă elementul nostru de meniu de nivel superior (membri) există — s-ar putea să nu existe dacă utilizatorul nu are permisiunea de a-l accesa. Dacă o are, atunci verifică dacă acel element de meniu de nivel superior are o pagină de submeniu cu slug-ul „view_account_notes” — ceea ce am atribuit în add_submenu_page. În final, verifică permisiunea pe care am atribuit-o în add_submenu_page și, dacă utilizatorul curent are acea permisiune, afișează noul link. Dacă nu o are, elimină complet link-ul.

      Facem aceeași verificare de două ori — o dată pentru link-ul de listare a tipului nostru de postare personalizat și o dată pentru link-ul de adăugare a unui nou tip de postare personalizat.

      Ar fi mult mai preferabil ca această capacitate să fie încorporată, dar acest lucru vă va permite să adăugați interfețe de utilizator pentru tipuri de postări personalizate în orice meniu doriți.

  3. Mulțumesc foarte mult. Mă puteți ajuta, vă rog? Am o problemă: Vreau să creez un meniu în administratorul Wordpress care să conțină multe tipuri de postări personalizate copil pentru a fi ușor de gestionat. Exemplu:

    Facilitățile meniului includ tipuri de postări: – Întâlniri; – Nunți; – SPA

    Mulțumesc mult pentru ajutor.

  4. hack bun. mulțumesc.

    1. nicio problemă oricând,

    2.  Nu este un hack, este o funcție

Adaugă un comentariu

Suntem bucuroși că ați ales să lăsați un comentariu. Vă rugăm să rețineți că toate comentariile sunt moderate conform politicii noastre de confidențialitate, iar toate linkurile sunt nofollow. NU folosiți cuvinte cheie în câmpul nume. Să avem o conversație personală și semnificativă.

Lista de verificare pentru lansarea WordPress

Lista de verificare finală pentru lansarea WordPress

Am compilat toate elementele esențiale de verificare pentru lansarea următorului dvs. site WordPress într-o singură carte electronică la îndemână.
Da, trimite-mi eBook-ul gratuit!