Tilfeldig sitatplugin med tilpasset innleggstype

Dette er den andre delen av å opprette et tilfeldig quote-plugin, men denne gangen med egendefinerte innleggstyper.


I denne andre versjonen av tilfeldig quote-plugin beveger vi oss litt lenger og bruker noen flere verktøy og funksjoner. Egendefinerte innleggstyper er tilgjengelige siden WordPress v3.0. De tillater utviklere å legge til forskjellige typer innhold til plugin-moduler og temaer, og dermed kan du enkelt utvide WordPress 'CMS-funksjonalitet.

Du finner den første versjonen av pluginet her. Hvis du bare starter med plugin-utvikling eller ønsker en rask oppdatering, anbefales det å lese det først.


1. Grunnleggende data

Dette er dataene som trengs for hvert plugin. Enkle ting som forfatter, plugin navn, beskrivelse og så videre.

 

2. Registrer egendefinert innleggstype

Før vi kan bruke det tilfeldige sitat-tilpassede innleggstypen, må vi sette den inn. I etikettfeltet er singular- og flertallsformen av navnet nødvendig. Den offentlige bryteren satt til true tillater brukerne å bruke posttypen på administrasjonen. De has_archive setter muligheten til å bruke arkiv av posttyper.

  array ('name' => __ ('tilfeldige sitater'), 'singular_name' => __ ('tilfeldig quote')), 'public' => true, 'has_archive' => true)); ?>

3. Opprette Admin Interface

Med project_edit_columns og project_custom_columns funksjon kan vi opprette et endret admingrensesnitt for den egendefinerte innleggstypen ved hjelp av Person og Sitat felt (overstyrer tittelen og beskrivelsen). Begge disse to funksjonene er nødvendig for å få jobben gjort.

  ""," title "=>" Person "," beskrivelse "=>" Sitat "), returner $ kolonner; add_action (" manage_posts_custom_column "," project_custom_columns "); funksjon project_custom_columns ($ kolonne) global $ post; ($ kolonne) sak "beskrivelse": the_excerpt (); break;?>

Dette er et bilde av det endelige pluginet.


4. Få ett tilfeldig citat fra databasen

Med WP_Query klasse kan vi få et tilfeldig element fra de egendefinerte innleggene. Fordi vi henter kun ett element, trenger vi ikke en standardsløyfe. Innstilling av disse tre argumentene er obligatorisk. De $ quo variabel bidrar til å lage en streng basert på sitatet og forfatteren som kan generere et eksempel som dette:

"Jeg tenker aldri på fremtiden. Det kommer snart nok."
~ Albert Einstein

  'random_quote', 'posts_per_page' => 1, 'orderby' => 'rand'); $ query = nytt WP_Query ($ args); // Build output string $ quo = "; $ quo. = $ Spørring-> post-> post_title; $ quo. = 'Sagt' '; $ quo. = $ spørring-> post-> post_content; $ quo. = '"'; return $ quo;?>

5. Tilordne sitatet til bloggbeskrivelseselementet

For å feste det genererte sitatet til sitt sted bruker vi en hjelperfunksjon, og etterpå tilsidesetter vi standardfilteret (bloginfo).

 

6. Endelig kode

Her er det vi har gjort, bare en fil.

  array ('name' => __ ('tilfeldige sitater'), 'singular_name' => __ ('tilfeldig quote')), 'public' => true, 'has_archive' => true));  // Lag admingrensesnitt add_filter ("manage_edit-random_quote_columns", "ab_arq_project_edit_columns"); funksjon ab_arq_project_edit_columns ($ kolonner) $ kolonner = array ("cb" => ", "title" => "Person", "beskrivelse" => "Sitat"), returner $ kolonner; add_action ("manage_posts_custom_column", "ab_arq_project_custom_columns"); funksjon ab_arq_project_custom_columns ($ kolonne) global $ post; ($ column) case "description": the_excerpt (); break; // Hovedfunksjon for å få sitater funksjon ab_arq_generate () // Hent et tilfeldig sitat $ args = array ('post_type' => 'random_quote' 'posts_per_page' => 1, 'orderby' => 'rand'); $ query = nytt WP_Query ($ args); // Bygg utføringsstreng $ quo = "; $ quo. = $ spørring-> post-> post_title; $ quo. = 'sagt' '; $ quo. = $ spørring-> post-> post_content; $ quo. =' "'; returner $ quo;  // Hjelperfunksjon funksjon ab_arq_change_bloginfo ($ tekst, $ show) if ('description' == $ show) $ text = ab_arq_generate ();  returner $ tekst;  // Overstyr standardfilter med den nye sitatgeneratoren add_filter ('bloginfo', 'ab_arq_change_bloginfo', 10, 2); ?>

7. Sammendrag

På bare noen få skritt har vi opprettet et mye mer fleksibelt lagringssystem ved bruk av egendefinerte innlegg, men vær oppmerksom på at hvis du deaktiverer eller sletter pluginet, vil anførselstegnene (egendefinerte innlegg) forbli i WordPress-databasen. Hvis du vil at disse skal slettes, må du utvide denne plugin tilsvarende.