广告投放

WordPress调用其他用户最近浏览过的文章

目录

    Wordpress调用其他用户最近浏览过的文章

    调用最近浏览过的文章,比较蛋疼的功能,原理是通过读取浏览器cookie文件,调用显示最近(360天)被访问过的10篇文章 ,需要注意的是,该功能不是统计所有浏览者最近查看过的文章,并没有写进数据库中,每个访客都有自己独有的浏览清单。

    将下面代码添加到主题functions.php文件的最后:

    <?php
    /* 可选参数: */
    $zg_cookie_expire = 360; // cookie过期时间,默认值是360天
    $zg_number_of_posts = 10; // 显示篇数,默认值是10。
    $zg_recognize_pages = true;
    /* 此行后不要编辑 */
    function zg_lwp_header() {
    if (is_single()) {
    zg_lw_setcookie();
    } elseif (is_page()) {
    global$zg_recognize_pages;
    if ($zg_recognize_pages === true) {
    zg_lw_setcookie();
    }
    }
    }
    function zg_lw_setcookie() {
    global$wp_query;
    $zg_post_ID = $wp_query->post->ID;
    if (! isset($_COOKIE["WP-LastViewedPosts"])) {
    $zg_cookiearray = array($zg_post_ID);
    } else {
    $zg_cookiearray = unserialize(preg_replace('!s:(d+):"(.*?)";!e', "'s:'.strlen('$2').':"$2";'", stripslashes($_COOKIE["WP-LastViewedPosts"])));
    if (! is_array($zg_cookiearray)) {
    $zg_cookiearray = array($zg_post_ID);
    }
    }
    if (in_array($zg_post_ID, $zg_cookiearray)) {
    $zg_key = array_search($zg_post_ID, $zg_cookiearray);
    array_splice($zg_cookiearray, $zg_key, 1);
    }
    array_unshift($zg_cookiearray, $zg_post_ID);
    global$zg_number_of_posts;
    while (count($zg_cookiearray) > $zg_number_of_posts) {
    array_pop($zg_cookiearray);
    }
    $zg_blog_url_array = parse_url(get_bloginfo('url'));
    $zg_blog_url = $zg_blog_url_array['host'];
    $zg_blog_url = str_replace('www.', '', $zg_blog_url);
    $zg_blog_url_dot = '.';
    $zg_blog_url_dot .= $zg_blog_url;
    $zg_path_url = $zg_blog_url_array['path'];
    $zg_path_url_slash = '/';
    $zg_path_url .= $zg_path_url_slash;
    global$zg_cookie_expire;
    setcookie("WP-LastViewedPosts", serialize($zg_cookiearray), (time()+($zg_cookie_expire*86400)), $zg_path_url, $zg_blog_url_dot, 0);
    }
    function zg_recently_viewed() {
    echo '<ul class="viewed_posts">';
    if (isset($_COOKIE["WP-LastViewedPosts"])) {
    $zg_post_IDs = unserialize(preg_replace('!s:(d+):"(.*?)";!e', "'s:'.strlen('$2').':"$2";'", stripslashes($_COOKIE["WP-LastViewedPosts"])));
    foreach ($zg_post_IDsas$value) {
    global$wpdb;
    $zg_get_title = $wpdb->get_results("SELECT post_title FROM $wpdb->posts WHERE ID = '$value+0' LIMIT 1");
    foreach($zg_get_titleas$zg_title_out) {
    echo"<li><a href="". get_permalink($value+0) . "" title="". $zg_title_out->post_title . "">". $zg_title_out->post_title . "</a></li>n";
    }
    }
    } else {
    }
    echo '</ul>';
    }
    add_action('get_header','zg_lwp_header');
    ?>

    由于代码高亮转换后代码可能执行有误,这里提供:源文件下载 (提取码:577k)

    调用方法,在侧边sidebar模版或者正文single模版适当位置加入下面代码;

    <?php if (function_exists('zg_recently_viewed')): if (isset($_COOKIE["WP-LastViewedPosts"])) { ?>
    <h2>Last viewed posts</h2>
    <?php zg_recently_viewed(); ?>
    <?php } endif; ?>

    注:调用并不十分准确,有一定误差,效果看本站正文最后。

    最后说明一下,代码提取自:Last Viewed Posts 插件,如果嫌折腾麻烦,可以直接安装并启用该插件,使用更为方便,可以直接将该功能拖到侧边小工具中。

    原文地址:www.5che2.com

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

    给TA打赏
    共{{data.count}}人
    人已打赏
    广告位招租919838898
    0 条回复 A文章作者 M管理员
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    有新私信 私信列表
    搜索