количество кликов определенной ссылки в сообщении WordPress

Можно ли подсчитать, сколько раз была нажата определенная ссылка в сообщении?

(например, цель, предположим, что определенная ссылка имеет идентификатор с именем «bla»)

<a id="bla" href="#">download</a> 

У меня возникло ощущение, что это должно быть возможно, используя custom-fields/post-meta (чтобы сохранить счет), как и ever-so-popular трюк «посетителя». К сожалению, я довольно невежественный о PHP .

Это можно сделать с помощью ajax-вызова, который обновляет мета-поле до того, как будет следовать ссылка. Пример ниже регистрирует действие ajax для пользователей, которые не вошли в систему, и увеличивает специальное поле link_click_counter по 1 на каждый клик. Ссылка должна иметь атрибут id countable_link . Это базовый пример, который работает только для одной ссылки в сообщении. Чтобы использовать его в качестве плагина, создайте файл, например, wp-content/plugins/click-counter /click-counter.php и пример кода для копирования-вставки, или поместите код в файл functions.php внутри папки темы. При первом нажатии на ссылку будет создано новое настраиваемое поле link_click_counter для этой записи, и там вы можете отслеживать, сколько ссылок на клики.

HTML:

 <a id="countable_link" href="#">download</a> 

PHP:

 <?php /* Plugin Name: Link Clicks Counter */ if ( is_admin() ) add_action( 'wp_ajax_nopriv_link_click_counter', 'link_click_counter' ); function link_click_counter() { if ( isset( $_POST['nonce'] ) && isset( $_POST['post_id'] ) && wp_verify_nonce( $_POST['nonce'], 'link_click_counter_' . $_POST['post_id'] ) ) { $count = get_post_meta( $_POST['post_id'], 'link_click_counter', true ); update_post_meta( $_POST['post_id'], 'link_click_counter', ( $count === '' ? 1 : $count + 1 ) ); } exit(); } add_action( 'wp_head', 'link_click_head' ); function link_click_head() { global $post; if( isset( $post->ID ) ) { ?> <script type="text/javascript" > jQuery(function ($) { var ajax_options = { action: 'link_click_counter', nonce: '<?php echo wp_create_nonce( 'link_click_counter_' . $post->ID ); ?>', ajaxurl: '<?php echo admin_url( 'admin-ajax.php' ); ?>', post_id: '<?php echo $post->ID; ?>' }; $( '#countable_link' ).on( 'click', function() { var self = $( this ); $.post( ajax_options.ajaxurl, ajax_options, function() { window.location.href = self.attr( "href" ); }); return false; }); }); </script> <?php } } ?> 

Один из возможных способов – перенаправить все через общий PHP-шлюз и оттуда перенаправить на исходную страницу, которую вы хотите перенаправить, используя Header('Location: yourpage.html'); На странице PHP шлюза укажите число, увеличив сохраненное значение на 1.