Creează o pagină personalizată de administrare pentru tip de postare personalizat + taxonomii + meta
Scriu un plugin care se bazează pe tipuri de postări personalizate, taxonomie nouă și câteva câmpuri personalizate.
Toate aceste date vor fi private (nu vor putea fi interogate sau căutate).
Aș dori să ofer utilizatorului o pagină de administrare pentru a adăuga și edita aceste date într-un mod mai prietenos.
De exemplu, tipul de postare personalizat va avea doar un titlu și câmpul pentru extras, o taxonomie și câmpurile personalizate.
Știu cum să adaug meta box-uri la un tip de postare personalizat, dar acest lucru nu îmi este suficient.
Aș dori să creez o interfață HTML complet personalizată care se va ocupa de adăugarea/salvarea/ștergerea tipului de postare personalizat și va gestiona taxonomia și meta-urile.
Pentru clarificare, știu deja cum să scriu un plugin normal și să gestionez opțiunile plugin-ului.
Nu știu cum pot cu acest plugin să:
- Adaug un nou element de meniu în meniul de administrare WordPress
- În acest element de meniu, să gestionez, cu o interfață personalizată, tipul de postare personalizat
Există vreun ghid care m-ar putea ajuta să realizez acest lucru?

Va trebui să începeți să citiți despre API-ul de setări și opțiuni, iar apoi să integrați tipurile personalizate de postări (CPT) și taxonomiile în el.
Puteți începe de aici:
Referință Clasă/WP List Table « WordPress Codex
- Exemplu Practic de Plugin cu Listă Personalizată - Un exemplu practic de WP_List_Table sub formă de plugin
Meniuri de Administrare « WordPress Codex
- Plugin Editor Meniu Admin - permite adăugarea, ștergerea, ascunderea și reordonarea elementelor de administrare

http://codex.wordpress.org/Administration_Menus

Adăugați meniuri și submeniuri astfel:
add_action('admin_menu', 'custom_plugin_menu');
function custom_plugin_menu() {
$page_title = 'Titlul Meniului Părinte';
$menu_title = 'Titlul Meniului Părinte';
$capability = 'manage_options';
$menu_slug = 'parent_menu_slug';
$function = 'whatever_for_main_page_function';
$icon_url = 'dashicons-admin-generic';
$position = 4;
add_menu_page($page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position);
$parent_slug = 'parent_menu_slug';
$page_title = 'Titlul Paginii Submeniu';
$menu_title = 'Titlul Paginii Submeniu';
$capability = 'manage_options';
$menu_slug = 'edit-tags.php?taxonomy=your_taxonomy_name&post_type=custom_post_type_name';
$function = null;
$position = null;
add_submenu_page($parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function, $position);
}
în final:
add_filter('parent_file', 'menu_highlight');
function menu_highlight($parent_file) {
global $plugin_page, $submenu_file, $post_type, $taxonomy;
if ('custom_post_type_name' == $post_type) {
if ($taxonomy == 'your_taxonomy_name') {
$plugin_page = 'edit-tags.php?taxonomy= your_taxonomy_name&post_type= custom_post_type_name'; // slug-ul submeniului
$submenu_file = 'edit-tags.php?taxonomy= your_taxonomy_name&post_type= custom_post_type_name'; // slug-ul submeniului
}
}
return $parent_file;
}
Sper că am introdus totul corect. Includeți orice alte condiții if în interiorul verificării taxonomiei și adăugați același lucru pentru alte tipuri de postări.
