Evaluare utilizator: 0 / 5

Steluță inactivăSteluță inactivăSteluță inactivăSteluță inactivăSteluță inactivă
 

Yep, este aceeaşi captură folosită recent la un alt articol. Poate unii aţi sesizat acolo opţiunea din meniu „Sfânt la întâmplare”. Nu, nu vom avea o discuţie despre sfinţi ci accentul cade exclusiv pe partea a doua „la întâmplare”. Poate la situl Dvs a venit timpul să includeţi o astfel de opţiune, ca cititorii să se delecteze cu articole luate aleator din mulţimea de texte bune. Cum se face? Poate că există vreun plugin, dar pentru chestii simple prefer cod clar, pe care să îl pun în functions.php.

image

Fără să o lungim prea mult, iată soluţia ce o folosesc eu. Adevărul este că am testat mai multe şi nu toate au mers. Codul următor este însă atât de clar că ştiu că explic cam degeaba. În primul rând am creat un shortcode, astfel că opţiunea „Un sfânt la întâmplare” duce la o pagină WordPress ce include atât: [aleator]. Funcţia ataşată shortcode-ului nu face decât să invoce o interogare printre articole, luând aleator (orderby=rand) un articol (numberposts=1). După care vine bucla de fapt cu o singură iterare, în care obţin permalink-ul (url-ul articolului) şi trimit încolo. Gata. Sau aproape gata. Linia cu wp_reset_query e în principiu inutilă, dar la mine e din instict când afectez query-ul. Dacă apar probleme cu redirectarea atunci ajută ultimele 4 linii de cod.

function funcAleator(){
	query_posts('post_type=post&orderby=rand&numberposts=1');
	if(have_posts()){
        while(have_posts()){
            the_post();
            wp_redirect(get_permalink(),307);
            exit();
        }
    }
    wp_reset_query();
}
add_shortcode('aleator','funcAleator');

function app_output_buffer() {
	ob_start();
}
add_action('init', 'app_output_buffer');

Pentru alte opinii şi soluţii vedeţi Random Redirection In WordPress de pe SmashingMagazine sau How to Redirect Users to a Random Post in WordPress de pe WPBeginner. Succes!

Read more http://feedproxy.google.com/~r/cnetro/~3/ZbOwj6N6nc0/