Aceasta este a doua parte a creării unui plugin de citare aleatoare, dar de data aceasta cu tipuri de posturi personalizate.
În această a doua versiune a pluginului quote aleatorie ne mutăm un pic mai departe și folosim mai multe instrumente și funcții. Tipurile personalizate de posturi sunt disponibile de la WordPress v3.0. Ele permit dezvoltatorilor să adauge diferite tipuri de conținut la plug-in-urile și temele lor și cu care puteți extinde cu ușurință funcționalitatea WordPress "CMS.
Puteți găsi prima versiune a plugin-ului aici. Dacă tocmai începeți cu dezvoltarea plugin-ului sau doriți o reîmprospătare rapidă, este recomandat să citiți mai întâi acest lucru.
Acestea sunt datele necesare pentru fiecare plugin. Lucruri simple cum ar fi autorul, numele plugin-ului, descrierea și așa mai departe.
Înainte de a putea folosi tipul de postare personalizată pentru quote personalizat, trebuie să-l setăm. În matricea etichetelor este necesară forma singulară și plurală a numelui. Comutatorul public setat la true permite utilizatorilor să folosească tipul postului pe admin. has_archive
stabilește opțiunea de a utiliza arhiva tipurilor de posturi.
array ('name' => __ ('Citate aleatorie'), 'singular_name' => __ ('Random Quote')), 'public' => true, 'has_archive' => true)); ?>
Cu project_edit_columns
și project_custom_columns
puteți crea o interfață de administrare modificată pentru tipul de post personalizat utilizând Persoană
și Citat
câmpuri (depășind titlul și descrierea). Ambele aceste două funcții sunt necesare pentru a face treaba.
""," title "=>" Person "," descriere "=>" Citat ",) return $ coloane; add_action (" manage_posts_custom_column "," project_custom_columns ") function project_custom_columns (coloana $) caz "descriere": the_excerpt (); break;?>
Aceasta este o imagine a pluginului final.
Cu WP_Query
clasa putem obține un element aleatoriu din posturile personalizate. Pentru că recuperăm doar un element, nu avem nevoie de o buclă standard. Setarea acestor trei argumente este obligatorie. $ quo
variabila ajută la crearea unui șir pe baza citării și a autorului său care poate genera un eșantion ca acesta:
"Nu mă gândesc niciodată la viitor, este destul de curând."
~ Albert Einstein
'random_quote', 'posts_per_page' => 1, 'orderby' => 'rand'); $ query = noua valoare WP_Query ($ args); // Construiți șirul de ieșire $ quo = "; $ quo. = $ Query-> post-> post_title; $ quo = = 'said' '; $ quo. = $ interogare-> post-> post_content; $ quo = '' '; retur $ quo;?>
Pentru a atașa cotația generată la locul ei, folosim o funcție de ajutor, după care înlocuim filtrul implicit (bloginfo).
Iată ce am făcut, un singur dosar.
array ('name' => __ ('Citate aleatorie'), 'singular_name' => __ ('Random Quote')), 'public' => true, 'has_archive' => true)); // Creați interfața de administrare add_filter ("manage_edit-random_quote_columns", "ab_arq_project_edit_columns"); funcția ab_arq_project_edit_columns ($ coloane) $ columns = array ("cb" => ""," title "=>" Persoană "," descriere "=>" Citat ",) return $ coloane; add_action (" manage_posts_custom_column ", ab_arq_project_custom_columns;) ab_arq_project_custom_columns ($ column) case "description": the_excerpt (); break; // Funcția principală pentru obținerea funcțiilor de ghilimele ab_arq_generate () // Returnați o citare aleatoare $ args = array ('post_type' => 'random_quote' 'posts_per_page' => 1, 'orderby' => 'rand'); $ query = new WP_Query ($ args); // Construiți șirul de ieșire $ quo = "; $ quo. = $ interogare-> post-> post_title; $ quo = 'a spus' '; $ quo. = $ query-> post-> post_content; $ quo. =' ''; returnați $ quo; // Funcția funcție helper ab_arq_change_bloginfo ($ text, $ show) if ('descriere' == $ show) $ text = ab_arq_generate (); returnați $ text; // Suprascrie filtrul implicit cu noul generator de citate add_filter ('bloginfo', 'ab_arq_change_bloginfo', 10, 2); ?>
În doar câțiva pași suplimentari am creat un sistem de stocare mult mai flexibil, cu ajutorul unor postări personalizate, cu toate acestea, rețineți că dacă dezactivați sau ștergeți pluginul, citatele (postările personalizate) vor rămâne în baza de date WordPress. Dacă doriți ca acestea să fie șterse, trebuie să extindeți pluginul în consecință.