{"id":233282,"date":"2023-02-10T16:21:00","date_gmt":"2023-02-10T13:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233282"},"modified":"2022-11-10T20:16:29","modified_gmt":"2022-11-10T17:16:29","slug":"lisage-sql-i-abil-wordpressi-lehemalli-jaergmine-juhuslik-postitus","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/lisage-sql-i-abil-wordpressi-lehemalli-jaergmine-juhuslik-postitus\/","title":{"rendered":"Lisage SQL-i abil WordPressi lehemalli j\u00e4rgmine juhuslik postitus"},"content":{"rendered":"\n<p>V\u00f5ite sageli saada n\u00f5uandeid SEO (otsingumootori optimeerimise) parandamiseks, kui lisate uue postituse avaldamisel oma eelmistele postitustele linke. See aitab suurendada liiklust ja see toimib sarnaselt pistikprogrammidele nagu &quot;Suhtelised postitused&quot;, kuid ainult lihtsam.<\/p>\n<p>K\u00f5ik WordPressi postitused on salvestatud tabelisse nt <strong>wp_posts<\/strong> ja selle tabeli seest leiate <strong>post_title<\/strong>, <strong>post_name<\/strong> ja need veerud on \u00fcsna lihtsad. S\u00f5ltuvalt teie postituste URL-ide konfiguratsioonist v\u00f5ib teil olla erineva vorminguga p\u00fcsilinke, mida saate konfigureerida jaotises Seaded \u2013 p\u00fcsilink.<\/p>\n<p>J\u00e4rgmise PHP koodi saab sisestada oma lehe malli, tavaliselt <strong>single.php<\/strong>, mis on \u00fche postituse mall v\u00f5i <strong>page.php<\/strong> lehe malli jaoks.<\/p>\n<pre><code>\u00a0 global $wpdb; \/\/ include the $wpdb\n\u00a0 $query = \"select `post_title` as `title`, `post_name` as `name` from `wp_posts` where `post_type`='post' and `post_status`='publish' order by rand() limit 1\";\n\u00a0 $results = $wpdb-&gt;get_results($query); \/\/ run the query on the database\n\u00a0 if ($results) { \n\u00a0 \u00a0 $domain = $_SERVER['SERVER_NAME'];\n\u00a0 \u00a0 foreach ($results as $toppost) {\n\u00a0 \u00a0 \u00a0 \u00a0 echo \"&lt;a href=\"&lt;a class=\"vglnk\" target=\"_blank\" href=\"http:\/\/$domain\/\".$toppost-\" rel=\"nofollow\"&gt;&lt;span&gt;http&lt;\/span&gt;&lt;span&gt;:\/\/$&lt;\/span&gt;&lt;span&gt;domain&lt;\/span&gt;&lt;span&gt;\/\".$&lt;\/span&gt;&lt;span&gt;toppost&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;\/a&gt;&gt;name.\"\/\"&gt;&lt;img title=\"Next Post: \".$toppost-&gt;title.\"\" src=\"&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/helloacm.com\/static\/nextpost2.png\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;helloacm&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;static&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;nextpost2&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;png&lt;\/span&gt;&lt;\/a&gt;\" alt=\"Next Post: \".$toppost-&gt;title.\"\" \/&gt;&lt;\/a&gt;\";\n\u00a0 \u00a0 }\n\u00a0 }<\/code><\/pre>\n<p>Muutke vastavalt <strong>wp_posts<\/strong>, kuna see v\u00f5ib veidi erineda. SQL-p\u00e4ring tagastab juhusliku postituse, kus see v\u00e4listab lehed v\u00f5i men\u00fc\u00fc_elemendid, lingid jne. Ja postituse olek tuleks avaldada, mis v\u00e4listab mustandi. <strong>Limiit 1<\/strong> tagastab ainult 1 postituse. Nii et kui soovite eelmist postitust, v\u00f5iksite kaaluda selle muutmist <strong>piiranguks 2<\/strong>.<\/p>\n<p>Minu saidi p\u00fcsilink p\u00f5hineb <strong>atribuudil post_name<\/strong>, mis on SEO-s\u00f5bralikum. Saate seda h\u00e4sti kohandada. SQL-p\u00e4ringut saab ka kohandada. N\u00e4iteks v\u00f5ite soovida juhuslike postituste asemel tagastada asjakohased postitused, sobitades <code>title<\/code>v\u00e4\u00e4rtuse praeguse postituse pealkirja j\u00e4rgi. V\u00f5i soovite t\u00f5esti tagastada selle eelmise v\u00f5i j\u00e4rgmise postituse, mis on sorteeritud avaldamiskuup\u00e4eva j\u00e4rgi, v\u00f5iksite kasutada v\u00e4lja \u201epost_id&quot;.<\/p>\n<h3>Kommentaarid<\/h3>\n<p>Yu \u2013 &quot;Lahe, juhuslik on t\u00f5esti tore. Samuti veenduge, et juhuslik oleks praeguse postitusega seotud. Kuid see pole tavaliselt suur probleem, kui ajaveebi on m\u00f5eldud \u00fchele \u017eanrile.<\/p>\n<p>Ka RAND() j\u00e4rjekord t\u00f6\u00f6tab tuhandete kirjete puhul h\u00e4sti. (tavaliselt tavalise blogi puhul). Kuid see p\u00f5letab teie andmebaasi, kui teil on samas tabelis miljoneid kirjeid, mis vastavad otsingukriteeriumidele.&quot;<\/p>\n<p>Jah, SQL-i <strong>j\u00e4rjestus rand() j\u00e4rgi<\/strong> on natuke keeruline ja aeglane. See peab hankima k\u00f5ik kirjed ja sorteerima juhuslikult. Seda peetakse madalaks, kui laua suurus on keskmine v\u00f5i suur. V\u00f5imalik, et soovite kasutada j\u00e4rgmist nippi juhusliku kirje kiiremaks hankimiseks, kasutades PHP-s funktsiooni <strong>rand() .<\/strong><\/p>\n<pre><code>\/\/ get total number of records\n$query = \"select count(1) from `table`\";\n$result = mysql_query($query) or die(mysql_error());\n$total = mysql_result($result, 0, 0);\n\n\/\/ get a random\n$r = rand(0, $total - 1);\n\/\/ return a number between 0 and $total - 1 inclusive using PHP\n$query = \"select * from `table` limit $r, 1\";\n$result = mysql_query($query) or die(mysql_error());<\/code><\/pre>\n<p>SQL-i <strong>piirangu<\/strong> p\u00f5hjused m\u00e4\u00e4rab nihke ja teine \u200b\u200bparameeter m\u00e4\u00e4rab tootavate kirjete arvu.<\/p>\n<h3>Parem juhuslik salvestus<\/h3>\n<p>\u00dclaltoodu kohaselt on <strong>j\u00e4rjestus rand() j\u00e4rgi<\/strong> \u00e4\u00e4rmiselt ebaefektiivne, kui teil on v\u00e4ga suur tabel, sest sortimiseks (isegi kui soovite ainult \u00fchte \u00fcksust) k\u00e4ivitatakse funktsioon <strong>rand()<\/strong> ja see on see, mida me ei tee. tahan. Saame eeltoodut t\u00e4iustada kahe p\u00e4ringu abil, millest esimene tagastab postituste koguarvu ja meil on PHP juhuslik funktsioon ja juhusliku kirje saame limiitlause <strong>abil<\/strong>.<\/p>\n<pre><code>global $wpdb; \/\/ include the $wpdb\n$query= \"select count(1) from `wp_posts` where `post_type`='post' and `post_status`='publish'\";\n$cnt = $wpdb-&gt;get_var($query); \/\/ run the query on the database and return single variable\n$rand = mt_rand(0, $cnt - 1);\n$query= \"select `post_title` as `title`, `post_name` as `name` from `wp_posts` where `post_type`='post' and `post_status`='publish' limit $rand,1\";\n$results = $wpdb-&gt;get_results($query); \/\/ run the query on the database\n\/\/ the rest are the same<\/code><\/pre>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lisage j\u00e4rgmine juhuslik postitus WordPressi lehemalli<\/p>\n","protected":false},"author":1,"featured_media":224094,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,718,833,894,1110,842,802,802,833,842,863,863],"tags":[1165],"class_list":["post-233282","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-juhend-algajatele","category-n-a","category-opetused","category-php-4","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=233282"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233282\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/224094"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}