Cum de a adăuga conținut și de a manipula complet WordPress RSS Feeds
Într-un timp în urmă am împărtășit modul în care vă puteți controla WordPress RSS Footer cu ajutorul unui plugin popular numit RSS Footer de Joost. În timp ce plugin-ul este mare, dar este foarte limitat. Puteți adăuga numai text în subsol și este întotdeauna același text afișat în subsolul fiecărei postări. Ce se întâmplă dacă doriți să afișați un text diferit pentru fiecare post din postarea dvs. RSS? Ce se întâmplă dacă doriți ca anumite postări să aibă un titlu diferit în RSS Feeds? Ce se întâmplă dacă doriți să afișați un anumit câmp particularizat în RSS Feeds? De aceea vă prezentăm acest articol care vă va arăta cum să adăugați orice tip de conținut în RSS Feeds WordPress. Acest hack vă va pune în controlul WordPress RSS Feeds și îl puteți manipula oricum doriți.
Notă: Acest hack nu este pentru începători. Numai utilizatorii care se simt confortabil cu editarea funcțiilor.php și care au cunoștințe despre php ar trebui să încerce acest lucru. Utilizatorii începători ar trebui fie să folosească plugin-ul menționat în articolul de mai sus, fie să consulte specialiști ca noi pentru a le face pentru dvs..
1. Adăugați un câmp particularizat în subtitrarea dvs. WordPress RSS
În acest prim exemplu, vă vom arăta cum puteți utiliza câmpul personalizat pentru a afișa un anumit text / obiect în fluxul RSS WordPress. Acest truc vă va permite să afișați text diferit, publicitate, imagine sau orice altceva pentru fiecare post. Mai întâi deschideți funcțiile.php și lipiți următoarele coduri în etichetele php:
funcția wpbeginner_postrss ($ content) global $ wp_query; $ postid = $ wp_query-> post-> ID; $ coolcustom = get_post_meta ($ postid, 'coolcustom', adevărat); dacă (is_feed ()) if ($ coolcustom! == ") $ content = $ conținut."
"$ Coolcustom." " altceva $ content = $ content; return $ content; add_filter ('the_excerpt_rss', 'wpbeginner_postrss'); add_filter ('the_content', 'wpbeginner_postrss');
Acum majoritatea dintre voi vă întrebați cum funcționează acest cod. Deci, aici este o explicație. Creați o funcție numită wpbeginner_postrss care rulează un wp_query global pentru a căuta în fiecare post dacă este definit un câmp personalizat numit "coolcustom". Dacă este definită funcția Cool Custom (Personalizat), acesta afișează valoarea după conținutul mesajului. Dacă nu există un câmp personalizat definit, atunci funcția implicită arată doar conținutul postului și nimic altceva. Utilizăm conținutul $ variabil pentru afișarea conținutului. Folosim dacă este (is_feed) funcția și adăugăm textul personalizat sau alt conținut la conținutul principal al postului însuși pe care îl puteți vedea prin al doilea filtru. Dar aceasta va fi afișată numai în RSS Feeds datorită utilizatorului nostru de funcția if (is_feed). Procedând astfel, evităm toate problemele legate de compatibilitate.
Unii dintre voi vor spune, dar tocmai ați făcut ceea ce pluginul RSS footer face cu o funcție. Da și nu. Da, adăugăm codul la subsolul postului, dar acest text nu este același text exact pentru fiecare postare. Este diferit deoarece specificați text diferit pentru fiecare post prin câmpuri personalizate. Acest truc va fi foarte util pentru a se conforma noilor reguli FTC pentru blogurile care au diferite tipuri de postări.
2. Adăugarea de text suplimentar la titlurile postate în RSS
Blogul dvs. are postări de oaspeți, postări sponsorizate și postări de recenzii? Ei bine, dacă o veți face, veți găsi acest lucru foarte util. Unii bloggeri au un stil personalizat pentru a afișa fiecare tip diferit de postare, astfel încât utilizatorii săi pot distinge între ele. Dar când aceste posturi merg într-un cititor, toate stilurile au dispărut. Acesta este momentul în care acest truc vine la îndemână. În acest truc vom adăuga orice text înainte sau după titlu.
De exemplu, dacă titlul dvs. a fost "Tema comercială WordPress - StudioPress" și a fost un post sponsorizat, atunci îl puteți modifica la "Post sponsorizat: Tema WordPress comercială - StudioPress". Același lucru dacă cineva a scris o postare pentru oaspeți etc..
Pentru a realiza acest lucru, deschideți fișierul functions.php și adăugați următorul cod acolo:
funcția wpbeginner_titlerss ($ content) global $ wp_query; $ postid = $ wp_query-> post-> ID; $ gpost = get_post_meta ($ postid, 'guest_post', adevărat); $ spost = get_post_meta ($ postid, 'sponsored_post', adevărat); dacă $ gpost! == ") $ content = 'Oaspete:'. $ content; elseif ($ spost! ==") $ content = 'Post sponsorizat:'. altceva $ content = $ content; retur $ conținut; add_filter ('the_title_rss', 'wpbeginner_titlerss');
Explicație pentru cod:
Folosim funcția numită wpbeginner_titlerss care rulează un wp_query global pentru a căuta în fiecare post dacă conține fie $ gpost, fie $ spost. Aceste două elemente caută în principal două câmpuri personalizate specifice numite "guest_post" sau "sponsored_post". Dacă cineva are aceste câmpuri personalizate adăugate cu o valoare adevărată, atunci codul îl va adăuga în text. Dacă nu, atunci veți vedea titlul normal. Puteți vedea mai întâi codul căutând dacă $ gpost este adevărat, dacă nu este adevărat dacă $ spost este adevărat. Dacă nu este definit, atunci acesta afișează conținut obișnuit. Dar dacă oricare dintre ele era adevărat, atunci acesta afișează textul diferit specificat aici. Folosim șir de conținut $ pentru a afișa titlul postului.
Acum a fost doar afișarea câmpurilor personalizate în titlu. Doriți să afișați numele categoriei pe fiecare titlu? Ei bine, atunci ar trebui să lipiți pur și simplu următorul cod în fișierul functions.php:
funcția wpbeginner_cattitlerss ($ content) $ postcat = ""; foreach ((get_the_category ()) ca $ cat) $ postcat. = '('. $ cat-> cat_name. '' '; $ content = $ content. $ postcat; returnați conținut $; add_filter ('the_title_rss', 'wpbeginner_cattitlerss');
Explicație: Folosim funcția wpbgeinner_cattitlerss pentru a obține ID-ul categoriei pentru fiecare postare și apoi afișați-o chiar lângă titlu. Deci, dacă titlul este "Obțineți formularul de contact 7" acum ar fi "Obțineți formularul de contact 7 [Plugin-uri]". Puteți observa că nu există nici o variabilă atunci în acest cod. Folosim conținut $ pentru titlul principal și variabila postcat $ pentru a defini numele categoriei. Vă rearanjați dacă doriți.
3. Adăugați același text pentru toate postările din RSS
Dacă doriți doar să adăugați același text, puteți folosi pluginul numit RSS Footer de Joost, deoarece este mai ușor. Dar dacă vrei să o faci singur, așa vei face. Deschideți fișierul functions.php adăugați următorul cod:
funcția wpbeginner_postrss ($ content) if (is_feed ()) $ content = 'Această postare a fost scrisă de Syed Balkhi'. $ content.'Check out WPBeginner '; retur $ conținut; add_filter ('the_excerpt_rss', 'wpbeginner_postrss'); add_filter ('the_content', 'wpbeginner_postrss');
Explicație: Apelăm o funcție wpbeginner_postrss pentru a adăuga în fiecare post un conținut înainte de postarea spunând că această postare a fost scrisă de Syed Balkhi și după conținutul Verificați WPBeginner. Dar adăugăm funcția dacă (is_feed), deci va fi afișată numai în RSS Feeds.
Acest lucru ar fi foarte util dacă doriți să vindeți anunțuri pe anumite postări din RSS, să adăugați linii directoare FTC personalizate sau pur și simplu doriți să aveți mai mult control asupra fluxurilor dvs. RSS.
Sursa: Am folosit pluginul lui Joost RSS Footer pentru o mulțime de îndrumări în scris acest tutorial. Titlul partiției RSS hack a primit de la un site tutorial francez și am adăugat variabilele noastre proprii și i-am dat posibilitatea de a fi titluri personalizate per domeniu particularizat.