Aj napriek tomu, že WordPress poháňa takmer 34% webových stránok najrôznejších zameraní na celom internete (a 60% stránok s akýmkoľvek CMS), nesmieme zabudnúť, že je to platforma primárne vyvíjaná na publikovanie článkov.
Počet návštev článku je jedna z najdôležitejších metrík pre autora, WordPress však defaultne túto funkcionalitu neponúka. Existuje nespočetne veľa pluginov, ktoré pomôžu, no vo väčšine prípadov je vhodné vyhnúť sa im, pokiaľ ide o takto jednoduchú vec. Predpokladá sa, že ovládate aspoň základnú prácu s WordPress-om a PHP kódom. Poďme na to.
Ukladanie návštev do meta dát
Spočítané návštevy je potrebné niekde ukladať. Využijeme na to funkcionalitu meta dát, ktorú WordPress ponúka a vytvoríme si vlastný meta kľúč pre tento účel. Najprv si v súbore functions.php aktívnej témy vytvoríme funkciu na vytvorenie/aktualizovanie meta kľúča, v ktorom budeme počet návštev uchovávať.
<?php
function ahoi_set_post_views($postID) {
$count_key = 'ahoi_post_views_count';
$count = get_post_meta($postID, $count_key, true);
if ($count==''){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, '0');
} else {
$count++;
update_post_meta($postID, $count_key, $count);
}
}
?>Následne potrebujeme túto funkciu zavolať vždy, keď je článok zobrazený. Preto volanie funkcie umiestnime do PHP šablóny pre článok – single.php.
<?php /* Funkcia musí byť volaná zvnútra while cyklu, aby sme mali prístup k ID aktuálneho článku. Volanie umiestnite kdekoľvek dovnútra cyklu */ if ( have_posts() ) : while ( have_posts() ) : the_post(); // Volanie funkcie s aktuálnym ID ahoi_set_post_views(get_the_ID()); endwhile; endif; ?>
Zobrazenie návštev v administrácii
V ďalšom kroku sa vraciame do súboru functions.php. Počítadlo návštev už funguje. Teraz však potrebujeme, aby sa kliknutia zobrazovali aj v administrácii a aby sme si podľa nich články vedeli zoradiť.
V prvom kroku vytvoríme funkciu, ktorá z konkrétneho článku vytiahne počet návštev a v prípade, že v tomto článku ešte daný meta kľúč neexistuje – vytvorí ho.
<?php
function ahoi_get_blog_post_counter($post_ID) {
$count = get_post_meta($post_ID, 'ahoi_post_views_count', true);
if($count==''){
$count = 0;
$count_key = 'ahoi_post_views_count';
delete_post_meta($post_ID, $count_key);
add_post_meta($post_ID, $count_key, '0');
}
return $count;
}
?>Ďalšou funkciou vytvoríme vo WordPress administrácii nový stĺpec v zozname článkov.
<?php
function ahoi_create_blog_post_counter_column($defaults) {
$defaults['blog_post_counter'] = 'Počet zobrazení';
return $defaults;
}
add_filter('manage_posts_columns', 'ahoi_create_blog_post_counter_column');
?>Stĺpec s názvom „Počet zobrazení“ nám už funguje, ale nie sú v ňom žiadne hodnoty. Ďalšia funkcia získa počet návštev pomocou funkcie ‚ahoi_get_blog_post_counter‘, ktorú sme napísali vyššie a tento počet vloží do tabuľky.
<?php
function ahoi_display_blog_post_counter($column_name, $post_ID) {
if ($column_name == 'blog_post_counter') {
$count = ahoi_get_blog_post_counter($post_ID);
if ($count) {
echo '<span>' . $count . '</span>';
}
}
}
add_action('manage_posts_custom_column', 'ahoi_display_blog_post_counter', 10, 2);
?>Máme skoro hotovo. V administrácii už pri každom článku vidíme reálny počet kliknutí na článok vo vlastnom stĺpci. Chýba nám však dôležitá časť – možnosť zoradiť články podľa týchto hodnôt.
<?php
function ahoi_blog_post_counter_sortable( $columns ) {
$columns['blog_post_counter'] = 'count';
return $columns;
}
function ahoi_blog_post_counter_orderby( $query ) {
if( ! is_admin() )
return;
$orderby = $query->get( 'orderby');
if( 'count' == $orderby ) {
$query->set('meta_key','ahoi_post_views_count');
$query->set('orderby','meta_value_num');
$query->set('order','DESC');
}
}
add_filter('manage_edit-post_sortable_columns', 'ahoi_blog_post_counter_sortable' );
add_action('pre_get_posts', 'ahoi_blog_post_counter_orderby' );
?>Viola! Máme hotovo. Spravili sme veľmi jednoduché, ale efektívne počítadlo návštev a to bez akéhokoľvek pluginu, či zbytočného kódu. Funkcionalitu vieme ešte veľmi jednoducho rozšíriť. Napríklad zakázať počítanie administrátorských kliknutí pomocou WordPress funkcie ‚current_user_can(‚administrator‘)‘, či dokonca obmedzenie počítadla na unikátnych návštevníkov, napr. pomocou cookies.

V prípade, že potrebujete pomoc s nastavením jednoduchého webu, alebo s programovaním komplexného webového riešenia, ozvite sa nám, sme tu pre vás!