✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Lisää seuraava satunnainen viesti WordPress-sivumalliin SQL:n avulla

6

Saatat usein saada neuvoja SEO:n (hakukoneoptimoinnin) parantamiseen lisäämällä linkkejä aikaisempiin viesteihisi, kun julkaiset uuden viestin. Tämä auttaa lisäämään liikennettä ja toimii samalla tavalla kuin "Suhteelliset viestit" -laajennukset, mutta vain yksinkertaisemmin.

Kaikki wordpress-viestit on tallennettu taulukkoon esim . wp_posts ja tämän taulukon sisältä löydät post_title, post_name ja nämä sarakkeet ovat melko yksinkertaisia. Viestisi URL-osoitteiden asetuksista riippuen sinulla voi olla eri muotoisia pysyviä linkkejä, jotka voidaan määrittää Asetukset – Pysyvä linkki -osiossa.

Seuraava PHP-koodi voidaan lisätä sivumalliisi, tavallisesti single.php, joka on yksittäisviestimalli tai page.php sivumallille.

Muuta wp_posts vastaavasti, koska tämä saattaa vaihdella hieman. SQL-kysely palauttaa satunnaisen postauksen, jossa se sulkee pois sivut tai menu_items, linkit jne. Ja postauksen tila tulee julkaista, joka jättää pois luonnoksen. Raja 1 palauttaa vain 1 viestin. Joten jos haluat edellisen postauksen, voit muuttaa tämän rajaksi 2.

Sivustollani oleva pysyvä linkki perustuu post_name -arvoon, joka on SEO-ystävällisempi. Voit hyvin muokata tätä. SQL-kyselyä voidaan myös mukauttaa. Saatat esimerkiksi haluta palauttaa asiaankuuluvat viestit satunnaisten viestien sijaan sovittamalla titlearvon nykyisen viestin otsikon mukaan. Tai jos haluat todella palauttaa sen edellisen tai seuraavan viestin julkaisupäivän mukaan lajiteltuna, voit käyttää post_id-kenttää.

Kommentit

Yu – “Col, random on todella mukavaa. Varmista myös, että satunnainen liittyy nykyiseen viestiin. Mutta tämä ei yleensä ole iso ongelma, kunhan blogi koskee vain yhtä genreä.

Myös RAND():n järjestys toimii hyvin tuhansille tietueille. (yleensä normaalin blogin tapaus). Mutta se polttaa tietokantasi, jos sinulla on miljoonia tietueita samassa taulukossa, jotka vastaavat hakuehtoja."

Kyllä, SQL- järjestys rand():lla on hieman hankala ja hidas. Sen on haettava kaikki tietueet ja lajiteltava satunnaisesti. Sitä pidetään alhaisena hyötysuhteena, kun pöytäkoko on keskikokoinen tai suuri. Saatat haluta käyttää seuraavaa temppua saadaksesi satunnaisen tietueen nopeammin käyttämällä PHP :n rand() -funktiota.

// get total number of records $query = "select count(1) from `table`"; $result = mysql_query($query) or die(mysql_error()); $total = mysql_result($result, 0, 0); // get a random $r = rand(0, $total - 1); // return a number between 0 and $total - 1 inclusive using PHP $query = "select * from `table` limit $r, 1"; $result = mysql_query($query) or die(mysql_error());

SQL – rajoituksen syyt määrittää poikkeaman ja toinen parametri määrittää haettavien tietueiden määrän.

Parempi Random Record

Yllä olevan mukaan rand() -järjestys on erittäin tehoton, jos sinulla on erittäin suuri taulukko, koska lajittelua varten (vaikka haluat vain yhden kohteen), rand() -funktiota vedetään, ja sitä emme tee. haluta. Voimme parantaa yllä olevaa käyttämällä kahta kyselyä, joista ensimmäinen palauttaa viestien kokonaismäärän, ja meillä on PHP satunnaisfunktio ja saamme satunnaistietueen käyttämällä limit – lausetta.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja