Toms Welt


Count per Day

3.486 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.


If you get PHP inet_pton errors, use this patched file.
Copy the unzipped file to wp-content/count-per-day-geoip.

Count per Day 3.5.7

Contributors: Tom Braider
Tags: counter, count, posts, visits, reads, dashboard, widget, shortcode
Requires at least: 3.0
Tested up to: 4.8
Stable tag: 3.5.7
License: GPLv2
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

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"]
  • width and height: size, default 500x340 px
  • what: map content - reads|visitors|online, default reads
[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.
  • 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 permissions to wp-content/count-per-day-geoip directory.
  • If the automatically update don't work download GeoIPv6.dat.gz, extract and rename it to GeoIP.dat and load it to the count-per-day-geoip directory.
  • More information about GeoIP on



  • Bugfix: security fixes in notes, options


  • Bugfix: check/block stored bad referrers


  • Bugfix: security fixes in export, referrer and mass bot functions


  • Bugfix: check for IPv6 compatibility on settings page


  • Bugfix: undefined function cpd_inet_pton (once again)


  • Bugfix: undefined function cpd_inet_pton


  • back in WordPress plugin repository
  • Bugfix: Worldmap shortcode


  • New: PHP 7 compatibility (mysqli)
  • New: GeoIP part is now available as addon (installation with 1 click, see the settings page), because WordPress hates non GPL code in its plugin repository (after several years...)
  • Bugfix: possible daylight saving time problem in chart (hopefully)
  • Bugfix: reset function now deletes also collections


  • Bugfix: Security fix backup download


  • New: limit the length of client and referer to reduce database size and eliminate MySql strict mode errors
  • New: exclude countries you not want to count
  • New: Flash free World map
  • New: Flag of Malawi
  • Bugfix: language support without WPLANG constant
  • Bugfix: get temp directory


  • New: List of most industrious Visitors
  • New: Export data as CSV file
  • New: count given post types only
  • New: Shortcode CPD_FLOTCHART to show the big chart
  • New: Popular Posts Widget, thanks to Maurits van der Schee
  • New: Part of IP adresses in Bot List, 192.168 will block all visitors from 192.168.x.x
  • New language: Chinese, thanks to Siyuan Tang
  • Bugfix: counting of cached pages
  • Bugfix: cleaning database, delete entries per IP in bot list
  • some little fixes


  • Bugfix: Plugin dir path fixed
  • Bugfix: CSS path fixed
  • Bugfix: search word now case insensitive
  • Bugfix: Translation of widget titles
  • New: world map of current visitors
  • New: check referer agains bot list
  • New: delete clients and referers of older entries


  • 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 3.486 Kommentare

Seiten: « 1 2 3 4 5 6 7 8 9 10 ... 142 143 144 »
  1. fahirsch fahirsch sagt:

    This happens in one of my sites which is dedicated to the argentine elections on Sunday. I have had days with more than 5000 visitors, which is a lot in my case. In fact, when I wrote on the first days of June it apparently was too many visitors, the MySql server crashed a lot til I installed a cache and disabled several plugins because my host was threatening to kick me out. I suspect that the Count per day 1.5.1 tables became corrupted and I had to first disable it and then drop them (the tables).
    I don't understand the clean database option. Does it zero the table (no reads) as if I install Count per day for the first time?

    • Tom Tom sagt:

      "Clean the Database" don't empty or drop the table. It deletes counts of defined spam bot if you add a new one to the list. And it deletes counts of non exists pages. In case of delete a page or post after several days or month you don't need the count data.
      "Reset Counter" ist empty the table and deletes all data like a fresh install.

  2. Danny Danny sagt:

    Hi Tom,

    Thank you very much for v2 of Count per Day. I will enjoy using the feature that you implemented (comment #9 above). u1F44F.svgz

    Just one problem: when the count of visits reaches approximately 100,000 then Cout per Day just dies. It displays nothing on the dashboard. I have to clear down the tables and restart the count from zero. Any ideas?

    With best wishes,

    • Tom Tom sagt:

      Hi Danny,
      sorry, no idea. Where are 100,000? Total visitors? Visitors per day? There are no restrictions. u1F64F.svgz

      • Danny Danny sagt:

        Tom, we get approximately 100,000 unique visits each month and Count per Day always stops working after roughly 1 month. I did save logs for you the last time it happened but a disk crash and data loss means that they are lost.

        We are more interested in the most popular articles in the last xx days, so this is not a problem because will run a cron job to delete records that are older than xx days. If we reach 100,000 visits every 14 days I will be very happy u1F601.svgz

        • Tom Tom sagt:

          OK, but nontheless i have filled my table and test the plugin. Lo and behold i have seen your error. u1F603.svgz If wordpress gets too many rows by an sql request it need a lot of memory to create the array. I have 32 MB PHP memory-limit and the error cropped up by 40000 total visitor. Now i use a direct database connection without the wordpress functions. I hope it works without empty the table every 14 days.
          Try the Development Edition.

  3. Steffen Steffen sagt:

    Hi und zwar versuche ich auf meiner sidebar.php den counter anzeigen zu lassen.
    Leider bekomme ich ne fehlermeldung. Hier mal mein code.
    Kenn mich mit php nicht so aus, bin noch am einarbeiten.
    Fehlt vll zuvor ein code schnipsel.
    danke schon mal

  4. Danny Danny sagt:

    Thank you for testing a high row count, Tom. Your solution makes sense.
    I will install it now and let it run for several weeks to prove your solution.

  5. ofkoors ofkoors sagt:

    Ich habe mal eine Frage zu dem Besucherzähler. Bei mir klappt alles wollte ich ma fragen was ich machen muss, damit auf meiner homepage die gesamtbesucherzahl angezeigt wird. Habe leider keine Ahnung von diesem ganzen php usw., bekommt man das auch mit einfachen mitteln hin??

    • Tom Tom sagt:

      Am einfachsten wäre das Widget in den Sidebar zu legen und dort ggf. nur den Gesamtzähler anzuzeigen. u1F609.svgz

      • ofkoors ofkoors sagt:

        Alles klar danke schön!!! Dann noch eine kleine frage, muss ich bei den einstellungen unter
        "Zählt automatisch Besuche auf Single-Posts und Seiten ohne Änderungen am Template"
        nen haken rein machen??? Versteh net ganz was das bedeutet??

        • Tom Tom sagt:

          Damit überhaupt etwas gezählt wird, muss ein Funktion aufgerufen werden. Wenn du den Haken machst, wird sie automatisch auf Einzelseiten aufgerufen. Ohne Haken, musste du sie in die single.php (und/oder page.php) selbst einbauen. Ich hab den Haken drin.

  6. jan jan sagt:

    Klasse Plugin! Danke.

    Noch eine Frage: Ich erstelle für einen Kunden eine neue Webseite, er möchte aber das die Besucherzahl der alten Seite in den Zähler integriert wird. Kann ich irgendwo die Gesamtbesucherzahl vorgeben. Das die Statistik dann futsch ist, ist mir klar.


    • Tom Tom sagt:

      Rein rechnerisch ist da nichts vorgesehen. Eben weil dann Sachen wie "pro Monat" und "pro Artikel" nicht mehr funktionieren. Darüber dachte ich nämlich auch schon nach um alte Daten loszuwerden und nur die Zusammenfassung zu behalten. Du könntest höchstens direkt bei der Anzeige was dazu addieren.

  7. ofkoors ofkoors sagt:

    Kurze Frage wieder, wenn ich mir die "Besucher pro Tag" Grafik anschaue steht ja oben links beispielsweise "Max: 15" und die gleiche Anzahl zum Datum von heute.
    Zeigt das also die maximalen Aufrufe der Seite an einem bestimmten Tag an oder wie muss ich das verstehen?? Wenn ich dass mit der aktuellen Besucherzahl von heute vergleiche stimmt das nur leider net überein...

    • Tom Tom sagt:

      Genau DAS ist mir auch vor 2 Tagen aufgefallen und ich war verwirrt. u1F601.svgz
      In der Zusammenfassung werden Besucher angezeigt. Egal wie viele Seiten sie aufgerufen haben.
      Im Diagramm werden Seitenaufrufe angezeigt. Dort ist die Zahl also immer gleich oder größer, wenn ein Besucher mehrere Seiten anklickt. Ich hatte es falsch betitelt. Ist in der Dev. berichtigt. Das Max zeigt den Wert des höchsten Balkens an, damit man die anderen ein wenig einschätzen kann. Für genaue tägliche Werte kannst du mit der Maus drüber gehen.

  8. fahirsch fahirsch sagt:

    Having read the comment by danny and his 100.000 counts, I now see that the same happened to me (with the previous version of Count per Day).
    A suggestion regarding the Ø per day count. It seems to me that you divide the total count by the number of days elapsed since the start day. That isn't a very useful number as it averages to much. I suggest you change it to either the seven-day-count/7 or the Latest Count/Latest Counts - Days.
    It would be more related to what really happens.
    For example one of my blogs had an average of 3000 daily visits for the last few weeks. But for the next 6 months it will go down to about 300 daily visits. A weekly average would be more meaningful.

  9. ofkoors ofkoors sagt:

    Wäre es dann vielleicht nicht sinvoller, in der Besucher pro Tag Grafik die Balken auf die wahre Besucherzahl zu beziehen, um zu sehen, wann man am meisten Besucher hatte??

    • Tom Tom sagt:

      Kommt drauf an, was man sehen will. u1F609.svgz Aber es wäre logischer, da die anderen Zahlen ja auch Besucher anzeigen. Ich will beide Möglichkeiten geben, wenn ich effizientere Abfragen gefunden habe.

  10. Lozanno Lozanno sagt:

    Hi guys. I'm getting an error on COUNT PER DAY DASHBOARD

    Warning: Division by zero in /home6/temptat3/public_html/cancun/wp-content/plugins/count-per-day/counter.php on line 311

    How can i fix it?
    Please help! Thanks in advance!

Seiten: « 1 2 3 4 5 6 7 8 9 10 ... 142 143 144 »

Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht.

:mrgreen:  :D  :)  ;)  8-)  :O  :cry:  :(  :liebhab:  :-x  :-?  :P  :roll:  :arrow:  :schwitz:  :thumbsup:  :thumbup:  :thumbdown:  :facepalm:  :?:  :!:  :eis: