首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]WordPress 超链接点击访问统计插件

发布于 2024-11-04 10:22:40
0
262

以下是WordPress超链接点击访问统计插件的完整代码

<?php
/*
Plugin Name: 超链接点击访问统计
Plugin URI: http://www.example.com
Description: 统计WordPress站点中超链接的点击访问次数
Version: 1.0
Author: 作者名
Author URI: http://www.example.com
*/

// 创建数据库表
function create_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'link_clicks';
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        link_id mediumint(9) NOT NULL,
        click_date datetime NOT NULL,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}
register_activation_hook( __FILE__, 'create_table' );

// 记录超链接点击次数
function record_click($link_id) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'link_clicks';

    $wpdb->insert(
        $table_name,
        array(
            'link_id' => $link_id,
            'click_date' => current_time('mysql', 1)
        )
    );
}

// 统计超链接点击次数
function get_click_count($link_id) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'link_clicks';

    $results = $wpdb->get_results("SELECT COUNT(*) as count FROM $table_name WHERE link_id = $link_id");

    if ($results) {
        return $results[0]->count;
    } else {
        return 0;
    }
}

// 显示超链接点击次数
function display_click_count($link_id) {
    $click_count = get_click_count($link_id);
    echo '该链接已被点击 ' . $click_count . ' 次';
}

// 注册点击事件
function register_click_event($content) {
    $pattern = '/<a\s+(?:[^>]*?\s+)?href=([\'"])(.*?)\1/';

    preg_match_all($pattern, $content, $matches);

    if ($matches) {
        foreach ($matches[2] as $url) {
            if (filter_var($url, FILTER_VALIDATE_URL)) {
                $link_id = url_to_postid($url);
                $click_count = get_click_count($link_id);
                $content = str_replace($url, $url . ' <span>(' . $click_count . '次点击)</span>', $content);
            }
        }
    }

    return $content;
}
add_filter('the_content', 'register_click_event');

// 点击事件处理
function handle_click_event() {
    if (isset($_GET['link_id'])) {
        $link_id = intval($_GET['link_id']);
        record_click($link_id);
    }
}
add_action('init', 'handle_click_event');

请将以上代码复制粘贴到您的WordPress站点的主题的functions.php文件中,并保存即可。

然后在文章或页面中插入超链接,插件会自动统计超链接的点击次数并显示在页面上。

评论
一个月内的热帖推荐
zuiui
Lv.1普通用户

101

帖子

15

小组

317

积分

赞助商广告
站长交流