Feed-ul RSS al site-ului (feed-ul site-ului) permite utilizatorilor să urmărească apariția de noi materiale pe blogul dvs. Pentru a face acest lucru, utilizatorii se abonează la blogul dvs. prin orice flux RSS și primesc conținut nou de pe blogul dvs. în fluxul RSS. Uneori, pentru comoditate sau din alte motive, trebuie să modificați ieșirea postărilor din feed. De exemplu, puteți adăuga pe bandă tipuri tipice, puteți adăuga imagini în posturi și așa mai departe.
În acest articol voi da exemple care arată cum să modificați ieșirea fluxurilor în WordPress. Toate cârligele de mai jos ar trebui să fie plasate în temele file.php sau să creeze un plug-in separat de la ele. Codul pluginului va arăta astfel:
Activarea tipurilor arbitrare de intrări în fluxul RSS
Să presupunem, cu ajutorul lui register_post_type (). Am creat un nou tip de intrare în cărți și ne-ar plăcea să vedem înregistrări de acest tip, la nivelul cu postări (postare), să intrăm în fluxul RSS. Puteți face așa:
Dacă trebuie să includeți mai multe pagini (pagina), adăugați "pagina" la array: array ('post', 'book', 'page').
Adăugarea unei miniaturi postate într-un feed RSS
Să ne conectăm la_excerpt_rss. care funcționează pentru o scurtă descriere a postului în feed și adăugați o miniatură a postului la acesta:
Pentru a obține o miniatură, utilizați funcția get_the_post_thumbnail (). în al doilea argument al cărui dimensiune a imaginii care rezultă este specificată (100x80), iar în a treia - atributul etichetei - align = "left". Unele fluxuri RSS taie regulile CSS încorporate (stil = ''), deci este mai bine să folosiți align = "left". când trebuie să plasați imaginea în stânga.
Dimensiunea specificată (100x80), nu reală, nu este o copie a imaginii originale cu dimensiunile de care avem nevoie: cea mai potrivită imagine este selectată și redusă vizual la dimensiunile specificate. Uneori este mai bine să creați un format special pentru imagini miniatură pentru fluxurile RSS. Pentru a face acest lucru, va trebui să înregistrați un nou format miniatură pentru tema dvs., după cum urmează:
În acest caz, când descărcați prima dată orice imagine în WordPress, va fi creată o copie proporțională redusă a imaginii originale. Ca urmare, fluxurile vor afișa imagini cu dimensiuni reale.
După adăugarea unui astfel de cod în funcțiile funcționale.php sau plugin, puteți obține o miniatură cu dimensiunea feedului:
Dacă doriți să modificați rezultatul, mai degrabă decât o scurtă descriere, utilizați cârligul_content_rss.
Deoarece banda RSS va arăta în final, depinde de programul care citește feedul. Deci, în diferite browsere banda pare diferită. Așadar, verificați modul în care feedul arată în fiecare caz și nu încercați să faceți ceva prea neobișnuit cu ieșirea.
Excluderea postărilor din feed cu o etichetă
Dacă doriți să împiedicați postările care au, să zicem, o etichetă ID de 451 de postări în fluxul RSS, utilizați următorul cod:
Dacă doriți să excludeți postările cu oricare dintre etichetele specificate, specificați ID-ul tuturor etichetelor din matrice:
Excluderea rubricilor din feedurile RSS
Pentru a exclude rubricile inutile din feed, lăsați-le să fie rubrici cu ID-urile 6 și 4, utilizați următorul cod:
Excluderea unui copac din feedul RSS
Dacă doriți să excludeți postările din rubrică și din toate subpozițiile, puteți folosi exemplul anterior și specificați manual ID-ul titlurilor și al tuturor subtitlurilor. Totuși, acest lucru nu este convenabil, deoarece dacă adăugăm o nouă subcapitolă la această rubrică, va trebui să adăugăm ID-ul acestei versiuni în cod, altfel posturile din aceasta vor cădea în bandă, dar nu avem nevoie de aceasta.
Pentru a exclude postările din rubrică și automat din toate subcapitolele sale, utilizați codul următor în care trebuie doar să specificați ID-ul poziției părinte și ID-ul tuturor subtitlurilor va fi primit automat:
Excluderea din posturile de alimentare cu un câmp arbitrar
Să presupunem că trebuie să excludem postările aleatoare din fluxul RSS: nu depinde de etichetă, titlu sau altă taxonomie. Apoi, putem adăuga la astfel de postări un câmp arbitrar exclude_from_feed cu orice valoare (chiar 1) și să folosim codul care exclude din feedul RSS toate postările care au un câmp arbitrar exclude_from_feed:
Ieșiți în posturile de bandă numai din rubricile specificate
În cazurile în care trebuie să afișați postări din feed doar dintr-o singură poziție, puteți utiliza acest cod:
Pentru a afișa postări din mai multe titluri, indicați numele lor (separat), separate prin virgule:
De asemenea, puteți specifica ID-ul categoriilor separate prin virgule:
Adăugați un link la sursa de la sfârșitul fiecărei postări din feedul RSS
În unele cazuri, un link către un site este mai bun decât textul, deoarece etichetele HTML pot fi tăiate prin RSS-uri și dacă specificați o legătură cu o ancoră, utilizatorul poate vedea numai link-urile de ancorare, fără link-ul propriu-zis.
Etichete introduse la sfârșitul fiecărei postări în fluxul RSS
Dezvoltând ideea de conținut suplimentar la postări din feed-ul RSS, de exemplu, la sfârșitul fiecărei postări, adăugați linkuri către înregistrări cu aceeași etichetă. Asta este, să zicem, postul are o etichetă "viața" în banda la sfârșitul acestui post vor fi adăugate alte posturi cu eticheta "viața":
Ajustați numărul de înregistrări afișate în fluxul RSS
De obicei, numărul de înregistrări afișate în feedul RSS poate fi setat în setări: Opțiuni> Citire> În fluxurile RSS, afișați ultima. Cu toate acestea, dacă trebuie să modificați numărul de intrări prin plugin sau în alte cazuri, atunci când modificarea standard a setărilor nu se potrivește, utilizați acest cod:
Aici am folosit filtrul post_limits. care permite intrarea în interogarea SQL și modificarea numărului de linii de interogare recepționate (LIMIT 7), în cazul nostru, numărul de înregistrări.
Întârziere înainte de a posta o intrare RSS feed
Cârlige utilizate în exemple:
the_excerpt_rss - filtrează conținutul descrierii scurte trimise feedului;
the_content_feed - filtrează conținutul postării după ce este primit din baza de date și procesat de filtrul the_content;
Pluginul de memorare în cache poate afecta verificarea modificărilor instantanee. Să presupunem că ați eliminat plug-in-ul din cauza căruia problema a fost verificată și problema a rămas din cauza cache-ului. Iar concluzia este că acest plugin este nevinovat, deși este vinovat. Aceasta este singura modalitate de a influența pluginul de cache. În plus, RSS este cached în WordPress în sine, un poet după fiecare schimbare, este de dorit să se asigure oarecum că RSS este dat proaspăt.
Trebuie să găsești o problemă. Implicit în WordPress este OK cu RSS - este un fapt! Prin urmare, încercați să schimbați temporar subiectul, la orice, și să verificați ieșirea din RSS. Dacă din nou, de asemenea, pluginul este de vina. Dezactivați plug-in-urile una câte una. Dacă nimic nu ajută, ci uitați-vă în folderul wp-contents / mu-plugins (poate că nu este), pot exista și pluginuri.
În cele din urmă, accesați phpMyAdmin și faceți o căutare în tabelul wp_options pentru căutarea câmpului option_name pentru% rss%:
Poate că aveți RSS în cache-ul bazei de date. Se întâmplă, în ce cazuri nu știu exact, dar îmi amintesc că m-am întâlnit cu asta.
În general, găsiți un loc problematic, apoi scrieți, vă voi ajuta să o rezolvați, dacă nu puteți. Pentru dvs., nimeni nu va căuta o problemă, bine, sau aproape nimeni, acest lucru necesită acces și timp liber și dorința de a ajuta, bine, sau să plătiți pentru muncă.
Mult noroc în căutarea dvs.!