Za koľko prečítaš článok?

Mal som fakt divnú požiadavku od klienta, chcel pri každom článku zverejniť čas čítania. Úplne useless, keďže ja napr. prečítam Bibliu za tri hodiny a moja babka za toľko neprečíta ani leták z Lidlu. 

Každopádne, chceli to, tak to majú. A teraz ti ukážem, ako na to. 

				
					function reading_time() {
    $content = get_post_field( 'post_content');
    $word_count = str_word_count( strip_tags( $content ) );
    $readingtime = ceil($word_count / 260);
    $timer = __(' min čítania', 'lava');
    $totalreadingtime = $readingtime . $timer;
    return $totalreadingtime;
}
add_shortcode('lava_reading_time', 'reading_time');
				
			

Prvé, čo potrebujeme urobiť, je načitať si obsah článku a zistiť, koľko slov obsahuje. To sa nachádza na prvých dvoch riadkoch.

Funkcia get_post_field môže prijmať ako druhý parameter ID článku, pokiaľ ho tam však nedáš, aplikuje sa tzv. current query, čiže sa do článku dotiahne aktuálne post_id. Čo nám vyhovuje, keď chceme zobraziť tento useless údaj napr. na zozname článkov (inak by sme tam nejakým obdivuhodným spôsobom museli doťahovať ešte aj post_id). 

Na riadku 4 si získaný počet slov vydelíme číslom 260-300, to je štandardne počet slov, čo je bežný človek schopný prečítať za minútu. 

Na riadku č. 5 som si vložil vlastnú prekladovú funkciu, lebo tento projekt bol multijazyčný. Tam si napíš text, aký chceš. Ak nepotrebuješ multilang, tak celé __() vyhoď het a do apostrofov daj svoj string (aj s medzerou). 

Na riadku 6 to už len spojíme do jedného a na riadku 7 vrátime ako výstup funkcie. 

Na riadku 9 pridáme shortcode. A kde budeš potom chcieť zobraziť tento údaj, tak proste hodíš shortcode [lava_reading_time]

Podobné články

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *