Basic idea is to use javascript to make an AJAX call back to the site which in turn save the hit because if you use PHP alone, then hits for cached pages won’t be counted because no PHP is processed at that time.
Study the code of WP-Postviews plugin http://lesterchan.net/portfolio/programming/php/#wp-postviews
Edit:
Hook may be fired twice in Firefox because it prefetches URL specified in HTML source as
<link rel="next" href="http://www.domain.com/adjacent-post/" />
Use this to remove that line from source
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
Related Posts:
- Passing a parameter to filter and action functions
- Get a list of all registered actions
- How can I edit post data before it is saved?
- Deactivate plugin for a specific user group
- Auto Load Plugin Hooks inside Must Use Plugin
- Removing an action from an external plugin class
- How can I log a user out of WordPress before the page loads?
- How can I limit functionality in one version of a plugin?
- Shortcode display outside the div
- Use external link in the add sub menu
- How to remove action from plugin?
- How to prepend to the_title for admin-side plugin’s use
- How can I enqueue a style only when a particular widget is active?
- Add custom buttons with custom actions in Edit Post screen in WordPress?
- How to filter content post only on save
- Filter or action hook to insert content on admin pages before tag
- How to add inline css/js inside a shortcode
- WordPress Plugin Boilerplate – add_action hook in static “activate” function
- What is the purpose of $merged_filters?
- template_redirect not being called when using ajax
- add action wp_head not working
- Plugin custom Action Hook not working
- What are the benefit in adding hook in the init() hook?
- add_action in functions.php, do_action in plugin?
- Where to hook my plugin’s action
- How to Use Parameters with a Do_Action Function Within PHP Tags
- How do action and filter hooks understand where to look for the core function that we hooked our function to them
- Get posts from WP_Query and format them on admin_head
- Automatically add attributes to woocommerce product?
- How to get all of the activate_plugin action parameters?
- Calling plugin function inside custom plugin for onclick event
- CampaignMonitor for WooCommerce – Move subscribe button [closed]
- Removing an action from wp_footer called in a class that’s inside a bigger class
- Plugin developer automated documentation
- Custom plugin init action causing general slowness
- Is there a hook to Intercept al urls from a webpage and redirect to a page
- External Script Using WP – Hooks / Actions Not Working?
- Submit custom form from post content and execute in plugin
- register_activation_hook in oop approach
- What is @Action in WordPress?
- do add_action on condition
- Is there a way to figure out which action/filter invoked a function?
- _prime_post_caches in wordpress
- How passing values to construct function with Actions?
- Remove_action from plugin with a Class
- add_action into another add_action not working
- publish_post action doesn’t work
- a weird attribute on every html tag
- Submit Form data to another page via Ajax (WordPress Way)
- the_post hook is not firing for me
- Why do plugins often ask to add in to templates?
- Does using `add_action( ‘init’…` cause performance issues?
- do_action Nested List
- How to get menu location in wp_update_nav_menu hook
- Basic function call on init failing
- How to create Admin Notice from Plugin with argument? [duplicate]
- Editing wp-config.php
- Are there action hooks for comments?
- New bulk action to resend welcome emails
- WooCommerce: after install hook
- Advanced WordPress plugin activation detection
- how to execute some code after a post is published in WordPress [duplicate]
- Dequeue, Unregister, Remove Action – Not Working on Plugin
- Add action to custom Function
- How to hook into action/filter call
- How to append new form elements in “Add New” form of Users in WordPress admin panel?
- Hook from plugin doesn’t fire up from external PHP script
- update_option_{$option} not working (do function after options are saved)
- The function called on the wp head hook becomes null
- i create functions.php in plugin files but add_action (‘wp_head’, ‘function_name’) don’t work
- Sharing varible between two add_actions
- Hooking into the HTML header container
- Removing Plugin Action via Theme for Non-admins
- WPML – Hook when language is switched (change user language)
- Nested Actions and Filters
- Use action, filter, or hook to append HTML to WordPress plugin function
- Passing function into add_action always returns the first argument
- Remove action added in plugin class from theme
- {status}_{post_type} does not run correctly?
- Change hook to add_action in a plugin class
- echo plugin results on pages
- How to get bulk actions handler to display simple “Hello World”?
- Why is WP template_include overwritting all templates rather than specified page?
- Why can’t I shove an instance of a class into a variable from a do_action hook?
- Why doesn’t a form need an ‘action’ with a plugin that uses the post data?
- Passing a parameter to filter and action functions
- Run only on plug-in activation instead of wp_head
- Plugin Hook: Get posts
- Action hook “wp_insert_post” works but not for last imported post
- Remove action plugin
- Is it possible to cancel a post status transition?
- Problem with executing a function on saving a post
- OOP Plugin: Where should I place the action hooks in the class?
- add query string to all pages after user logged in
- Call a function with href
- Which action/filter can i use for a Member Plugin [closed]
- Hook automatic_updates_complete to autoupdate plugin
- add_action() not working for admin
- Add custom button to the changeset status in the Customizer
- How to customize WP_Error (REST JWT authentication plugin) [closed]