Опис
WP-PostViews броји колико је пута сваки чланак, страница или произвољна врста чланка прочитана и пружа вам место за приказ броја. Број се чува као мета податак чланка, па се сортира, упитује и извози као све остало што Вордпрес чува о чланку.
Могућности
- Број прегледа на било ком чланку, страници или произвољној врсти чланка, исписан ознаком шаблона или кратким кодом
[views]. - Два шаблона која сами уређујете, са ознакама за број, наслов, датум, сажетак, сличицу, аутора и још много тога.
- Изаберите ко се броји — сви, само гости или само пријављени корисници — и изоставите познате роботе.
- Ознаке шаблона и виџет за најпрегледаније и најмање прегледане чланке, по жељи у оквиру категорије или ознаке.
- Колона „Прегледи“ која се може сортирати у табелама списка чланака и страница.
- Број у REST API-ју као поље
viewsи AJAX путања бројања за сајтове иза кеша страница. - Одељак на страници WP-Stats када је тај додатак постављен.
Донације
Већину слободног времена посвећујем прављењу, ажурирању, одржавању и подршци ових додатака. Ако вам се заиста свиђају моји додаци и можете да издвојите неколико долара, биће ми веома драго. Ако не, слободно их користите без икаквих обавеза.
Употреба
Најједноставнији начин, и једини који ради у блок теми без уређивања датотека шаблона, јесте кратки кôд. Ставите га у чланак или страницу чији број желите да прикажете:
[views]приказује број за чланак у ком се појављује.[views id="1"]приказује број за чланак 1, где год да га ставите.
Да би се број аутоматски приказивао на сваком чланку, класична тема позива ознаку шаблона из index.php, archive.php, single.php или page.php, било где унутар петље:
<?php if ( function_exists( 'the_views' ) ) { the_views(); } ?>
Подешавања се налазе у WP-Admin -> Settings -> WP-PostViews, на два језичка. На Settings бирате ко се броји и да ли се WP-Stats нуди одељак прегледа; на Templates уређујете кôд помоћу ког се број приказује.
Где се број појављује зависи од тога где ваша тема позива the_views() или где ставите кратки кôд. Да бисте га сакрили на одређеном месту, одговорите на филтер wp_postviews_should_display:
add_filter( 'wp_postviews_should_display', function ( $show ) {
return ! is_archive() && ! is_search();
} );
Приказ броја прегледа у блоку
У уређивачу је доступан један блок, под Widgets:
- Post Views — број прегледа, приказан помоћу шаблона са језичка Templates. Оставите Post ID на нули да бисте приказали број чланка у ком се блок налази, што ради и празан
[views], или га поставите на ИБ другог чланка да бисте приказали број тог чланка.
Приказује се на серверу, па је претпреглед блока у уређивачу прави број, а не приближна вредност, и број наставља да расте у сваком чланку који га приказује без поновног чувања. Претпреглед блока у уређивачу не броји преглед.
Кратки кôд и даље ради и неће нестати. [views] и [views id="1"] понашају се тачно као и увек, а чланак који га већ садржи не треба мењати. Блок позива исти кôд као и кратки кôд, па се оба приказују исто — користите шта год одговара чланку.
WP-CLI
wp postviews list
wp postviews list --limit=50 --format=json
wp postviews get 42
Наредба чита и никада не уписује. Ниједан екран у овом додатку не уређује број прегледа, па ни наредба то не нуди — wp post meta update <id> views <n> је и даље ту за онога коме је заиста потребно и јасно показује да се иде мимо додатка.
REST API
POST /wp-json/postviews/v1/post/<id>/view
За читање броја није потребна посебна путања. Број је већ објављен као поље views само за читање на ресурсу чланка из основе, па /wp-json/wp/v2/posts/<id> враћа чланак и његов број заједно, а списак чланака носи све бројеве у једном одговору.
Оно што поље из основе не може јесте упис, и за то служи ова путања: броји преглед и постоји за сајтове који испоручују кеширане странице, где се преглед мора пријавити након испоруке странице. Прима исти wp_postviews_nonce који добија скрипта за бројање, као параметар nonce.
Одбија се осим ако сајт не одлаже бројање — то јест, осим ако има кеш страница и укључену AJAX путању бројања. У супротном је преглед већ пребројан док се страница приказивала, а поновно бројање овде би сваки преглед забележило двапут.
Одбијање враћа 403 — лош једнократни кôд или сајт који броји прегледе док се страница приказује. Чланак који не постоји враћа 404.
Ова путања је додатак. Радња admin-ajax.php wp_postviews је непромењена и и даље подржана.
Снимци екрана




Блокови
Овај додатак пружа 1 блок.
- Post Views How many times a post has been viewed, rendered with the stored template.
Постављање
- Поставите и укључите додатак. Бројање почиње одмах; не морате ништа да радите да би се бројеви бележили.
- Прикажите број где желите: упишите
[views]у чланак, додајте блок Post Views, додајте виџет или позовитеthe_views()из своје теме. - Идите на
WP-Admin -> Settings -> WP-PostViewsда бисте изабрали ко се броји и како се број приказује.
ЧПП
-
Како да видим статистику помоћу виџета?
-
- Идите на
WP-Admin -> Appearance -> Widgets - Назив виџета је Views.
- Идите на
-
Приказ најмање прегледаних чланака
-
<?php if (function_exists('get_least_viewed')): ?> <ul> <?php get_least_viewed(); ?> </ul> <?php endif; ?>- Прва вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
array('post', 'page'). - Друга вредност коју прослеђујете је највећи број чланака који желите да добијете.
- Подразумевано: get_least_viewed(‘both’, 10);
- Прва вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
-
Приказ најпрегледанијих чланака
-
<?php if (function_exists('get_most_viewed')): ?> <ul> <?php get_most_viewed(); ?> </ul> <?php endif; ?>- Прва вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
array('post', 'page'). - Друга вредност коју прослеђујете је највећи број чланака који желите да добијете.
- Подразумевано: get_most_viewed(‘both’, 10);
- Прва вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
-
Приказ најмање прегледаних чланака по ознаци
-
<?php if (function_exists('get_least_viewed_tag')): ?> <ul> <?php get_least_viewed_tag(); ?> </ul> <?php endif; ?>- Прва вредност коју прослеђујете је ИБ ознаке.
- Друга вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
array('post', 'page'). - Трећа вредност коју прослеђујете је највећи број чланака који желите да добијете.
- Подразумевано: get_least_viewed_tag(1, ‘both’, 10);
-
Приказ најпрегледанијих чланака по ознаци
-
<?php if (function_exists('get_most_viewed_tag')): ?> <ul> <?php get_most_viewed_tag(); ?> </ul> <?php endif; ?>- Прва вредност коју прослеђујете је ИБ ознаке.
- Друга вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
array('post', 'page'). - Трећа вредност коју прослеђујете је највећи број чланака који желите да добијете.
- Подразумевано: get_most_viewed_tag(1, ‘both’, 10);
-
Приказ најмање прегледаних чланака за категорију
-
<?php if (function_exists('get_least_viewed_category')): ?> <ul> <?php get_least_viewed_category(); ?> </ul> <?php endif; ?>- Прва вредност коју прослеђујете је ИБ категорије.
- Друга вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
array('post', 'page'). - Трећа вредност коју прослеђујете је највећи број чланака који желите да добијете.
- Подразумевано: get_least_viewed_category(1, ‘both’, 10);
-
Приказ најпрегледанијих чланака за категорију
-
<?php if (function_exists('get_most_viewed_category')): ?> <ul> <?php get_most_viewed_category(); ?> </ul> <?php endif; ?>- Прва вредност коју прослеђујете је ИБ категорије.
- Друга вредност коју прослеђујете је врста чланка коју желите. Ако желите све врсте чланака, само користите ‘both’. Подржава и PHP низ: пример
array('post', 'page'). - Трећа вредност коју прослеђујете је највећи број чланака који желите да добијете.
- Подразумевано: get_most_viewed_category(1, ‘both’, 10);
-
Сортирање најпрегледанијих/најмање прегледаних чланака
-
- Можете користити:
<?php query_posts( array( 'meta_key' => 'views', 'orderby' => 'meta_value_num', 'order' => 'DESC' ) ); ?> - Или проследите променљиве у URL:
https://yoursite.com/?v_sortby=views&v_orderby=desc - DESC можете заменити са ASC ако желите најмање прегледане чланке.
- Можете користити:
-
Приказ ажурираног броја прегледа уз LiteSpeed Cache
-
Користите:
<div id="postviews_lscwp"></div>уместо<?php if(function_exists('the_views')) { the_views(); } ?>.
НАПОМЕНА: ИБ се може променити, али ИБ div-а и скрипта морају да се подударају.Датотека додатка
js/wp-postviews-cache.jsвећ шаље преглед и прима нови број назад, па само треба да тај број упишете у свој div. Додајте ово у своју тему или у сопствену малу скрипту стављену у ред послеwp-postviews-cache:document.addEventListener( 'postviews:updated', function ( event ) { const target = document.getElementById( 'postviews_lscwp' ); if ( target ) { target.textContent = event.detail.views + ' views'; } } );Очистите кеш да бисте користили ажуриране странице.
-
Добијање прегледа помоћу REST API-ја
-
Број прегледа чланка можете добити додавањем
viewsу свој параметар_fields:
/wp/v2/posts?_fields=views,title -
Може ли се екран подешавања дати другој улози?
-
Екран захтева
manage_options. Филтерwp_postviews_capabilityчита се
где год се та провера врши, па друга способност отвара екран свакоме ко је има:add_filter( 'wp_postviews_capability', function () { return 'edit_others_posts'; } );
Рецензије
Сарадници и градитељи
„WP-PostViews“ је софтвер отвореног кода. Следећи људи су допринели овом додатку.
Сарадници„WP-PostViews“ је преведен на 20 језика. Хвала преводиоцима на њиховим доприносима.
Преведите „WP-PostViews“ на свој језик.
Заинтересовани сте за развој?
Прегледајте кôд, погледајте SVN складиште или се претплатите на дневник развоја преко RSS-а.
Дневник измена
2.0.1
- НОВО: веза „Settings“ у реду додатка на екрану додатака
- ИСПРАВЉЕНО: „Count Views From“ поштовало се само док се страница приказивала. На кешираном сајту бројање се уместо тога одвија кроз засебан AJAX или REST позив, а та путања никада није проверавала подешавање — па је са „Registered Users Only“ гост који отвори кеширану страницу и даље бројан, а ни изузимање ботова ту се није примењивало. Обе крајње тачке сада проверавају подешавање према стварном стању пријаве посетиоца
2.0.0
- ИСПРАВЉЕНО: два шаблона исписују се као кôд на основу тога што су при чувању прошла кроз
wp_kses_post()— а то је важило само за екран подешавања. Миграција 2.0.0 уписује кроз друга врата, а ред који она преузима потиче из издања које је поље чувало без икаквог филтрирања, па је злонамерни шаблон на сајту који се надограђује са 1.78.1 пренет дословно и исписиван сваком посетиоцу. Филтрирање се сада обавља тамо где се ред уписује, па кроз њега пролазе и WP-CLI, cron, враћена резервна копија и други додаци - ИСПРАВЉЕНО: крајња тачка одложеног бројања проверавала је само да ли ИБ именује нешто, а на то одговара сваки ред у
wp_posts— ревизије, аутоматска чувања, аутоматски нацрти, прилози, чланци на отпаду, нацрти, ставке изборника, блокови за вишекратну употребу. Позивалац без пријаве могао је да прође кроз простор ИБ-ова уписујући ред прегледа за сваки, а притом и да прочита број необјављених чланака. Сада се захтева прави, јавно видљив чланак, што је друга путања бројања већ знала - ИСПРАВЉЕНО: број прегледа који није број — мета кључ нема префикс, па свако ко може да уређује чланак може да га упише у Custom Fields — претварао је сваки списак који садржи тај чланак у кобну грешку на PHP 8, јер се обе ознаке броја граде без обзира на то да ли их шаблон користи
- НОВО: блок уређивача Post Views, под Widgets. Приказује се на серверу кроз исти кôд који користи кратки кôд, па блок и кратки кôд који приказују исти чланак дају исти кôд, а претпреглед у уређивачу никада не броји преглед. Кратки кôд
[views]је непромењен и и даље подржан — ништа не треба претварати, а чланци који га већ садрже настављају да раде. - НОВО: WP-CLI наредба
wp postviews—listиget. Чита и никада не уписује. - НОВО: REST API
postviews/v1са једном путањом, за бројање прегледа са кеширане странице. Читање броја је већ пољеviewsна ресурсу чланка из основе. Радњаadmin-ajax.phpwp_postviewsје непромењена и и даље подржана. - ВАЖНА ИЗМЕНА: захтева Вордпрес 6.8 и PHP 8.2.
- ВАЖНА ИЗМЕНА: филтер
the_viewsсада јеwp_postviews_the_views. Ознака шаблонаthe_views()је непромењена. - ВАЖНА ИЗМЕНА: филтер
postviews_should_countсада јеwp_postviews_should_count. - ВАЖНА ИЗМЕНА: радње
postviews_increment_viewsиpostviews_increment_views_ajaxсада суwp_postviews_increment_viewsиwp_postviews_increment_views_ajax. - ВАЖНА ИЗМЕНА: подешавања се чувају у
wp_postviews_optionsуместо уviews_options, а ознаке надоградње уwp_postviews_versionуместо уviews_version. Оба се аутоматски преносе. - ВАЖНА ИЗМЕНА: прекидачи WP-Stats премештени су из заједничких редова
stats_displayиstats_mostlimitу сопствена подешавања овог додатка, а заједнички редови се бришу. Ажурирајте свих седам WP-Stats додатака заједно. - ВАЖНА ИЗМЕНА: класа виџета
WP_Widget_PostViewsсада јеWP_PostViews_Widget. Подешени виџети нису погођени. - ВАЖНА ИЗМЕНА: AJAX радња на коју кеширана страница шаље сада је
wp_postviewsуместоpostviews. - ВАЖНА ИЗМЕНА: шест подешавања Display Options — почетна страница, појединачни чланци, странице, архиве, претраге и остале странице — уклоњено је, а сачувани кључеви се бришу при надоградњи. Замењује их филтер
wp_postviews_should_display. - НОВО: преуређено у
includes/класе. Ознаке шаблона —the_views(),get_most_viewed(),get_least_viewed()и варијанте за категорије и ознаке — непромењене су и раде тачно као и раније. - НОВО: екран могућности поново је изграђен на Вордпрес Settings API-ју и више не учитава jQuery.
- НОВО: одељак WP-Stats и број уноса у његовим списковима најпрегледанијих сада су подешавања у Settings -> WP-PostViews.
- НОВО: филтер
wp_postviews_should_displayодлучује да ли се број приказује. Чита га самоthe_views(); кратки кôд[views]и администраторска колона прегледа су изричити захтеви и занемарују га. - ИЗМЕЊЕНО: екран подешавања има два језичка, Settings и Templates, над једном групом подешавања и једним редом могућности.
- ИЗМЕЊЕНО: екран подешавања носи наслов „Post Views Settings“, у складу са осталим екранима подешавања у овој породици.
- ИЗМЕЊЕНО: WP-Stats сада добија један одељак прегледа уместо три засебно укључена панела, па се списак најпрегледанијих страница појављује поред списка чланака.
- ИСПРАВЉЕНО:
%VIEW_COUNT_ROUNDED%бирао је јединицу пре заокруживања, па је 999.950 приказивано као „1000K“ уместо „1M“, а 999.999.999 као „1000M“ уместо „1B“. - ИСПРАВЉЕНО: наслови су скраћивани по бајтовима уместо по знаковима, јер је вишебајтна грана зависила од
MB_OVERLOAD_STRING, које је PHP 8.0 уклонио. CJK наслов пресечен усред знака потпуно је нестајао са спискова најпрегледанијих/најмање прегледаних. - ИСПРАВЉЕНО: AJAX крајња тачка бележила је прегледе за ИБ-ове чланака који не постоје, омогућавајући свакоме да неограничено додаје редове у
wp_postmeta. - ИСПРАВЉЕНО:
?v_orderby=ASCпоређено је само са малим словима, па је смер великим словима — што ЧПП каже да користите — тихо враћан на опадајући, супротно од траженог. - ИСПРАВЉЕНО: виџет је тихо одбацивао измене направљене у уређивачу виџета блокова и прилагођавачу, јер је захтевао скривено поље обрасца које ниједан од њих не шаље.
- ИСПРАВЉЕНО: виџет је упозоравао на недефинисане кључеве низа када се приказивао из уређивача виџета блокова или прилагођавача.
- ИСПРАВЉЕНО: уклањање на мрежи са више од 100 сајтова остављало је могућности и бројеве прегледа на сваком сајту после стотог, а пријављивало је успех. Укључивање на мрежи могло је да изазове кобну грешку због уклоњене функције
wp_get_sites(). - НАПОМЕНА: екран подешавања премештен је са
options-general.php?page=wp-postviews/postviews-options.phpнаoptions-general.php?page=wp-postviews. Ажурирајте обележиваче; ставка изборника Settings -> WP-PostViews је тамо где је увек била. - НАПОМЕНА: шаблони се сада чувају без косих црта. Постојећи шаблони се аутоматски преносе при првом учитавању издања 2.0.0.
- НАПОМЕНА:
should_views_be_displayed(),postviews_round_number()иsnippet_text()више нису глобалне функције. Никада нису биле документоване; сада суWP_PostViews_Display::should_be_displayed(),WP_PostViews_Display::round_number()иWP_PostViews_Display::snippet_text().
