Toms Welt


Count per Day

2.946 Kommentare | Kommentar schreiben

"Count per Day" ist ein Besucherzähler für WordPress.

Die Seitenaufrufe werden pro Artikel gespeichert. Dabei wird als "Reload-Sperre" nur ein Aufruf pro IP-Adresse und Tag berücksichtigt.

Beispiel: Wenn ein Leser 5 Artikel ansieht, sind alle "1 mal gelesen", aber der Gesamtzähler erkennt, dass es nur ein Besucher war.

Die Aufrufe können pro Artikel angezeigt werden. Im Admin-Bereich gibt es weitere Statistiken.


Count per Day 3.2.9

Contributors: Tom Braider
Tags: counter, count, posts, visits, reads, dashboard, widget, shortcode
Requires at least: 3.0
Tested up to: 3.6
Stable tag: 3.2.9
License: Postcardware :)
Donate link:

Visit Counter, shows reads and visitors per page, visitors today, yesterday, last week, last months and other statistics.


"Count per Day" counts 1 visit per IP per day. So any reload of the page do not increment the counter.

Languages, Translators


  1. unzip plugin directory into the /wp-content/plugins/ directory
  2. activate the plugin through the Plugins menu in WordPress
  3. on every update you have to deactivate and reactivate the plugin to update some settings!

The activation will create or update a table wp_cpd_counter.

The Visitors-per-Day function use 7 days as default. So don't surprise about a wrong value in the first week.


See the Options Page and check the default values.

Frequently Asked Questions

Need Help? Find Bug?

read and write comments on


  1. 1. Statistics on Count-per-Day Dashboard

  2. 2. Options

  3. 3. Widget sample

Arbitrary section


You can use these shortcodes in the content of your posts to show a number or list
or in your theme files while adding e.g. <?php echo do_shortcode("[THE_SHORTCODE]"); ?>.
To use the shortcodes within a text widget you have to add add_filter("widget_text", "do_shortcode"); to the functions.php of your theme.

[CPD_MOST_VISITED_POSTS limit="5" days="30" postsonly="1" posttypes="posts,pages"]
  • limit (optional): max records to show, default = all
  • days (optional), show last x days
  • postsonly (optional), 1 = don't show index pages
  • posttypes (optional), show this posttypes only, sets postsonly to 1
[CPD_POSTS_ON_DAY date="2010-10-06" limit="3"]
  • date (optional), format: year-month-day, default = today
  • limit (optional): max records to show, default = all
[CPD_MAP width="500" height="340" what="reads" min=1]
  • width and height: size, default 500x340 px
  • what: map content - reads|visitors|online, default reads
  • min: 1 (disable title, legend and zoombar), default 0
[CPD_SEARCHES days="14" limit="20"]
  • days (optional), show last x days
  • limit (optional): show x most searched strings

You can place these functions in your template.
global $count_per_day;
if(method_exists($count_per_day,"show")) echo $count_per_day->getReadsAll(true);

to check if plugin is activated.

show( $before, $after, $show, $count, $page )'
  • $before = text before number e.g. <p> (default "")
  • $after = text after number e.g. reads</p> (default " reads")
  • $show = true/false, "echo" complete string or "return" number only (default true)
  • $count = true/false, false will not count the reads (default true)
  • $page (optional) PostID
  • only count reads, without any output
  • show call it
getFirstCount( $return )
  • shows date of first count
  • $return: 0 echo, 1 return output
getUserPerDay( $days, $return )
  • shows average number of visitors per day of the last $days days
  • default on dashboard (see it with mouse over number) = "Latest Counts - Days" in options
  • $return: 0 echo, 1 return output
getReadsAll( $return )
  • shows number of total reads
  • $return: 0 echo, 1 return output
getReadsToday( $return )
  • shows number of reads today
  • $return: 0 echo, 1 return output
getReadsYesterday( $return )
  • shows number of reads yesterday
  • $return: 0 echo, 1 return output
getReadsLastWeek( $return )
  • shows number of reads last week (7 days)
  • $return: 0 echo, 1 return output
getReadsThisMonth( $return )
  • shows number of reads current month
  • $return: 0 echo, 1 return output
getReadsPerMonth( $return )
  • lists number of reads per month
  • $return: 0 echo, 1 return output
getUserAll( $return )
  • shows number of total visitors
  • $return: 0 echo, 1 return output
getUserOnline( $frontend, $country, $return )
  • shows number of visitors just online
  • $frontend: 1 no link to map
  • $country: 0 number, 1 country list
  • $return: 0 echo, 1 return output
getUserToday( $return )
  • shows number of visitors today
  • $return: 0 echo, 1 return output
getUserYesterday( $return )
  • shows number of visitors yesterday
  • $return: 0 echo, 1 return output
getUserLastWeek( $return )
  • shows number of visitors last week (7 days)
  • $return: 0 echo, 1 return output
getUserThisMonth( $return )
  • shows number of visitors current month
  • $return: 0 echo, 1 return output
getUserPerMonth( $frontend, $return )
  • lists number of visitors per month
  • $frontend: 1 no links
  • $return: 0 echo, 1 return output
getUserPerPost( $limit, $frontend, $return )
  • lists $limit number of posts, -1: all, 0: get option from DB, x: number
  • $frontend: 1 no links
  • $return: 0 echo, 1 return output
getMostVisitedPosts( $days, $limits, $frontend, $postsonly, $return, $posttypes )
  • shows a list with the most visited posts in the last days
  • $days = days to calc (last days), 0: get option from DB
  • $limit = count of posts (last posts), 0: get option from DB
  • $frontend: 1 no links
  • $postsonly: 0 show, 1 don't show categories and taxonomies
  • $return: 0 echo, 1 return output
  • $posttypes: comma separated list of post types, default: empty to show all
getVisitedPostsOnDay( $date, $limit, $show_form, $show_notes, $frontend, $return )
  • shows visited pages at given day
  • $date day in MySQL date format yyyy-mm-dd, 0 today
  • $limit count of posts
  • $show_form show form for date selection, default on, in frontend set it to 0
  • $show_notes show button to add notes in form, default on, in frontend set it to 0
  • $frontend: 1 no links
  • $return: 0 echo, 1 return output
getClients( $return )
  • shows visits per client/browser in percent
  • $return: 0 echo, 1 return output
getReferers( $limit, $return, $days )
  • lists top $limit referrers of the last $days days, 0: get option from DB, x: number
  • $return: 0 echo, 1 return output
getMostVisitedPostIDs( $days, $limit, $cats, $return_array )
  • $days last x days, default = 365
  • $limit return max. x posts, default = 10
  • $cats IDs of categories to filter, array or number
  • $return_array true returns an array with Post-ID, title and count, false returns comma separated list of Post-IDs
function getMap( $what, $width, $height, $min )
  • gets a world map
  • $what visitors|reads|online
  • $width size in px
  • $height size in px
  • $min : 1 disable title, legend and zoombar
getDayWithMostReads( $return )
  • shows day with most Reads
  • $return: 0 echo, 1 return output
getDayWithMostVisitors( $return )
  • shows day with most Visitors
  • $return: 0 echo, 1 return output
  • With GeoIP you can associate your visitors to an country using the ip address.
  • In the database a new column country will be insert on plugin activation.
  • On options page you can update you current visits. This take a while! The Script checks 100 IP addresses at once an reload itself until less then 100 addresses left. Click the update button to check the rest.
  • If the rest remains greater than 0 the IP address is not in GeoIP database (accuracy 99.5%).
  • You can update the GeoIP database from time to time to get new IP data. This necessitates write rights to geoip directory (e.g. chmod 777).
  • If the automatically update don't work download GeoIPv6.dat.gz, extract and rename it to GeoIP.dat and load it to the "geoip" directory.
  • More information about GeoIP on



  • Bugfix: PHP without IPv6 support
  • New Language: Persian, thanks to Mahmoud Zooroofchi
  • Hint: use "update old counter data" to repair the unknown countries


  • Bugfix: inet_pton for windows php < 5.3
  • Bugfix: GeoIP support for online world map


  • Bugfix: GeoIP functionality


  • New: posts only parameters for [CPD_MOST_VISITED_POSTS]
  • New: don't count password protected posts without password
  • New: translate widget titles if possible
  • New: flags of Cambodia, Nigeria and Sudan
  • Bugfix: massbot post list has not show all post
  • Bugfix: security fix, XSS
  • Bugfix: problems while adding widgets
  • Bugfix: start session only in backend
  • Bugfix: empty database query


  • Bugfix: compatibility fix for WordPress 3.5


  • Bugfix: security fix, check user permissions



  • New: counter column in custom post lists
  • Bugfix: errors in search words
  • Bugfix: wrong counts in posts lists


  • Bugfix: massbot delete error
  • Bugfix: search words array sometimes corrupt
  • Bugfix: add collected data to reads per post, thanks to Suzakura Karin /
  • Language update: Japanese, thanks to Juno Hayami
  • Language update: Portuguese, thanks to Beto Ribeiro
  • Language update: Russian, thanks to Ilya Pshenichny
  • Language update: Bulgarian, thanks to joro


  • New: save search words
  • New shortcode: CPD_COUNTRIES_USERS
  • New: flags for Bahamas, Mongolia, Cameroon and Kazakhstan
  • Bugfix: can't move widgets
  • Bugfix: visitors per post list
  • Bugfix: "Clean Database" deleted collection too
  • Bugfix: browser summary Chrome/Safari fixed
  • Bugfix: get real remote IP address, not local server
  • Bugfix: security fixes
  • Change: create collection functions optimized
  • New language: Romanian, thanks to Alexander Ovsov
  • New language: Hindi, thanks to Love Chandel
  • New language: Finnish, thanks to Jani Alha
  • Language update: Ukrainain, thanks to Iflexion design


  • Bugfix: important fixes in map.php and download.php, thanks to


  • New: memory check before backup to avoid "out of memory" error
  • New: create temporary backup files for download only
  • New: delete backup files in wp-content on settings page
  • Bugfix: all posts shows 1 read in posts list
  • Bugfix: clean database shows 0 entries deleted


  • New: use now default WordPress database functions to be compatible to e.g. multi-db plugins
  • New: backup your counter data
  • New: collect entries of counter table per month and per post to reduce the database and speed up the statistics
  • New: functions and shortcodes [CPD_DAY_MOST_READS] [CPD_DAY_MOST_USERS] to shows days with most reads/visitors
  • New: option to cut referrer on "?" to not store query strings
  • New: parameter $postsonly for getMostVisitedPosts function to list single posts and pages only
  • New: flags for Moldavia and Nepal
  • New language: Norwegian, thanks to Stein Ivar Johnsen and Tore Johnny Bråtveit
  • New language: Azerbaijani, thanks to Bohdan Zograf
  • New language: Japanese, thanks to Juno Hayami
  • Bugfix: visitors per month list
  • Change: some function parameters
  • Change: little memory optimizing
  • Change: visitors currently online and notes will now managed per option, without seperate tables in database
  • Change: design updated
  • Change: old bar charts deleted
created by Readme Parser

RSS-Feed 2.946 Kommentare

  1. AECS AECS sagt:

    I have a problem with this pluggin.
    There is another country without a name, and some countries don't appear in my counter, despite the fact that, my website is visited in those countries.
    Thank you for your observations

  2. […] Count Per Day:统计插件,能够统计访客数量,阅读数量,能够显示IP等信息,功能比较强大。 […]

  3. dark* dark* sagt:


    Ich habe seit gestern deinen Counter im Einsatz und jetzt etliche Zugriffe von mehreren Cloud-Diensten (?) aus den USA. Kann ich die irgendwie zu der Liste der Bots, Spammer und Crawler hinzufügen und wenn ja: wie?

    Abgesehen davon gefällt mir das PlugIn bisher echt gut! :)


    • Tom Tom sagt:

      Du kannst einen Teil des Browsers/Clients in die Bot-Liste eintragen. Die siehst du in der Massen-Bot-Liste oder direkt in der Datenbank.

      • Anonymous sagt:

        Oh ... gerade wieder etwas über den Counter gelernt ;-)

        Kann in die Bots-Liste auch die IP-Adresse eingegeben werden, um die Zählung dann zu verhindern ?
        Wenn ein Browser "Mozilla xxx/xxx ..." eingetragen wird, könnte es ja sein, dass korrekte Besuche nicht gezählt werden ! ? Oder habe ich das nicht verstanden ???

        Gruß FRF

        • dark* dark* sagt:


          Mit Ezooms hat das super funktioniert, Danke!

          Das Problem ist aber, dass hier ein echter User-Agent imitiert wird:

          Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; chromeframe/19.0.1084.52)

          Mit dem kommen ziemlich viele Zugriffe und alle aus derselben IP-Range. Gibt es dafür keine Lösung?


          • Tom Tom sagt:

            Einzelne IP Adressen kann man auch eintragen. Aber bis jetzt noch keine Bereiche.

            • Anonymous sagt:

              Ich bin erschrocken, wie viele Seitenabrufe(über 500) manche IP-Adressen verzeichnen.
              Wenn ich diese Abrufe nun lösche, was passiert dann mit den Zählern ?
              Werden die gelöschten Seitenabrufe dann die Anzeige der Seitaufrufe um den entsprechenden Betrag reduzieren ?
              (Wie) werden die Bots auch als "Besucher" gezählt ?

              Wärer es nicht toll, wenn man die Massen-Bots mit einem "Klick" in die "Ignor-Liste" übernehmen könnte ?
              Dann muss man nicht jede IP manuell - per paste/copy - dort eintragen.


              • Tom Tom sagt:

                Wenn du die Einträge in der Masssen-Bot-Listen löscht, zeigen die Seiten natürlich auch entsprechend weniger Besucher an.
                Die Bots werden genauso wie richtige Besucher gezählt. Es sind ja ganz normale Seitenaufrufe. Die werden nur ein wenig mit der Span-Liste gefiltert, falls es etwas zum filtern gibt.

            • dark* dark* sagt:


              Leider klappt das mit dem Eintragen einzelner IPs nicht. Ich weiß zwar nicht. ob dann noch weiter gezählt wird, aber die Datenbank von Spam/Bots bereinigen funktioniert mit IDs definitiv nicht.

              Ein Tipp für alle, die das selbst versuchen: Eine leere Zeile im Textfeld zum Eintragen der Bots löscht den gesamten Datenbank-Inhalt. :-)


              • Tom Tom sagt:

                OK, das mit der Leerzeile ist logisch. Sollte aber natürlich nicht passieren.
                Und ich schau auch mal wie die IPs beim aufräumen verwendet werden.
                Danke für den Hinweis.

  4. dark* dark* sagt:

    PS: Natürlich nicht die vollständige WP-Datenbank, sondern nur den Inhalt der Tabelle wp_cpd_counter.

  5. Atif Atif sagt:


    This is to request if we can sort the posts in admin panel according to # of reads. Currently we can only check about # of reads but cant sort columns according to # of reads.

    Please add it to this great plugin.

  6. hamed hamed sagt:

    how show graph of users view and views in pages.

    for show graph have not any shortcut

    thank you

  7. jean noel jean noel sagt:

    is there a way to have a counter displayed at the front page ?


  8. Michal Michal sagt:

    My plugin works great.

  9. Melanie Melanie sagt:


    Mir hat ein Leser ein Screen geschickt, scheinbar hat CPD Probleme, ich selber kann das allerdings nicht sehen in keinem Browser?

    Hier mal der Screen, hat das noch jemand?

Seiten: « 1 2 3 ... 108 109 110 111 112 113 114 115 116 117 118

Kommentar schreiben

:mrgreen: :hehe: :lol: :-D :) ;) 8-) :-| :-o :-O :cry: :sad: :traurig: :liebhab: :-x :twisted: :approve: :-? :-P :oops: :roll: :arrow: :idea: :schwitz: :thumbup: :thumbsup: :thumbdown: :facepalm: :mauer: :baehh: :eis: :gruebel: :uebel: :verliebt: :pray: :?: :!: :base: :pirat: