非插件wordpress点赞功能

Zero零分 WordPress 5,995 0 7年前

非插件wordpress点赞功能,其实就是调用wordpress自定义字段,通过AJAX提交修改wordpress字段的数值,和阅读次数差不多。

上图是最近写一个模版的文章底部的样式,现在帖下百度来的点赞代码:

1、在模版functions.php适合位置插入

  1. //文章点赞开始
  2. add_action(‘wp_ajax_nopriv_specs_zan’, ‘specs_zan’);
  3. add_action(‘wp_ajax_specs_zan’, ‘specs_zan’);
  4. function specs_zan(){
  5.     global $wpdb,$post;
  6.     $id = $_POST[“um_id”];
  7.     $action = $_POST[“um_action”];
  8.     if ( $action == ‘ding’){
  9.         $specs_raters = get_post_meta($id,’specs_zan’,true);
  10.         $expire = time() + 99999999;
  11.         $domain = ($_SERVER[‘HTTP_HOST’] != ‘localhost’) ? $_SERVER[‘HTTP_HOST’] : false; // make cookies work with localhost
  12.         setcookie(‘specs_zan_’.$id,$id,$expire,’/’,$domain,false);
  13.         if (!$specs_raters || !is_numeric($specs_raters)) {
  14.             update_post_meta($id, ‘specs_zan’, 1);
  15.         }
  16.         else {
  17.             update_post_meta($id, ‘specs_zan’, ($specs_raters + 1));
  18.         }
  19.         echo get_post_meta($id,’specs_zan’,true);
  20.     }
  21.     die;
  22. }
  23. //文章点赞结束

文章模版页添加JS代码:

  1. $.fn.postLike = function() {
  2.     if ($(this).hasClass(‘done’)) {
  3.         return false;
  4.     } else {
  5.         $(this).addClass(‘done’);
  6.         $(this).children(‘.zan’).html(“已赞”);
  7.         var id = $(this).data(“id”),
  8.         action = $(this).data(‘action’),
  9.         rateHolder = $(this).children(‘.count’);
  10.         var ajax_data = {
  11.             action: “specs_zan”,
  12.             um_id: id,
  13.             um_action: action
  14.         };
  15.         $.post(“/wp-admin/admin-ajax.php”, ajax_data,
  16.         function(data) {
  17.             $(rateHolder).html(data);
  18.         });
  19.         return false;
  20.     }
  21. };
  22. $(document).on(“click”“.specsZan”,
  23.     function() {
  24.         $(this).postLike();
  25. });

在文章模版页需要添加点赞按钮的地方添加代码:

  1. <a hidefocus= true href=“javascript:;” data-action=“ding” data-id=“<?php the_ID(); ?>” class=“specsZan <?php if(isset($_COOKIE[‘specs_zan_’.$post->ID])) echo ‘done’;?>”>
  2. <i></i>
  3. <span class=“zan” style=“margin-right:5px;”><?php if(isset($_COOKIE[‘specs_zan_’.$post->ID])){ echo ‘已赞’;}else{echo ‘赞’;}?></span><span class=“count”><?php if( get_post_meta($post->ID,’specs_zan’,true) ){echo get_post_meta($post->ID,’specs_zan’,true);} else {echo ‘0’;}?></span></a></div>

这样,一个wordpress非插件的点赞功能就出来了!CSS样式自行添加。

如果嫌麻烦,可以搜索安装相关的点赞插件,相对来说,非插件自定义的自由会比较大吧

 

发布:2015-10-07 14:17:42
标签:
链接:https://blog.32xp.com/wordpress-499.html
END

你必须 登录 才能发表评论.

用户评论(0)

  • 评论功能已经关闭!

wordpress相邻文章(下一篇下一篇)显示文章略缩图

wordpress相邻文章(下一篇下一篇)显示文章相邻文章的略缩图,如 在没有略缩图时显示默认图片 原理:通过文章ID调用略缩图,functions.php插入调用略缩图函数 if(function_exists('add_theme_support')){ add_theme_support( 'post-thumbnails' ); } function post_thumbnail($id=false){ if(has_post_thumbnail($id)){ //如果有缩略图,则显示缩略图 the_post_thumbnail($id); }else{ global $post, $posts; $post_img = ''; $post_content=$id?get_post($id)->post_content:$post->post_content; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post_content, $matches); $post_img_src = $matches [1][0]; $post_img = $post_img_src; //如果没有缩略图,则显示日志中的第一张图片 if(empty($post_img_src)){ //如果日志中没有图片,则显示默认图片 $post_img = get_bloginfo("template_url").'/images/noimg.jpg'; } $post_img = str_replace('//','//',$post_img); return $post_img; } } 文章列表可以直接通过post_thumbnail()调用,在上一篇下一篇中通过相邻文章的ID调用,上一篇文章ID:get_previous_post()->ID,下一篇文章ID:get_next_post()->ID,调用代码 上一篇:post_thumbnail(get_previous_post()->ID) 下一篇:post_thumbnail(get_next_post()->ID) 当然也可以通过任意文章ID调用      
笔记 ·

wordpress添加编辑器可视化按钮代码

需要功能: 1、在编辑器可视化界面添加一个按钮 2、点击按钮弹出输入框 添加按钮: 在functions.php模板函数文件中添加插入按钮函数 挂载函数到正确的钩子 function outurl_mce_button() { // 检查用户权限 if ( !current_user_can( 'edit_posts' ) && !current_user_can( 'edit_pages' ) ) { return; } // 检查是否启用可视化编辑 if ( 'true' == get_user_option( 'rich_editing' ) ) { add_filter( 'mce_external_plugins', 'outurl_plugin' ); add_filter( 'mce_buttons', 'outurl_button' ); } } add_action('admin_head', 'outurl_mce_button'); 声明新按钮的脚本 function outurl_plugin( $plugin_array ) { $plugin_array['outurl'] = get_template_directory_uri() .'/images/js/outurl.js'; return $plugin_array; } 在编辑器上注册新按钮 function outurl_button( $buttons ) { array_push( $buttons, 'outurl' ); return $buttons; } outurl.js实现功能函数 (function () { tinymce.PluginManager.add('outurl', function (editor, url) { editor.addButton('outurl', { title: '添加外链', image: url+"/outurl.png", onclick: function () { //editor.insertContent('WPExplorer.com is awesome!'); editor.windowManager.open({ title: '请输入标签及外链', body: [ { label:'输入标签', type: 'textbox', name: 'outkey', minWidth: 400, minHeight: 30, multiline: false, value: '' }, { label:'输入链接', type: 'textbox', name: 'outurl', minWidth: 400, minHeight: 30, multiline: false, value: '' } ], onsubmit: function (e) { //获取输入内容 var outkey = e.data.outkey; var outurl = e.data.outurl; var urls=jQuery("#urls_value").val(); var urlarr=urls.split("[++++++++++]"); var i=urlarr.length; if(outkey.length > 0 && outurl.length > 0) { var txt=jQuery("#urls_value").val()+'[++++++++++]'+outurl; jQuery("#urls_value").val(txt); //将地址拼接到iframe ,输出到编辑器 editor.insertContent('[ outurl id='+i+']'+outkey+'[ /outurl]'); }else{ alert("标签和URL都不能为空!"); } } }); } }); }); })(); 最后处理短代吗 function outurl($atts,$content){ global $post; extract(shortcode_atts(array("id"=>'0'),$atts)); return '<a target="_blank" rel="nofollow" href="'.get_bloginfo("url").'/go?e='.$post->ID.'_'.$id.'_1_1_'.time().'">'.$content.'</a>'; } 以上是以博客外链为例  
笔记 ·

wordpress添加编辑器按钮

最近在写一个新的wordpress模板,其中有一个文章外链问题,需要在编辑器上添加一个按钮! 基本功能是:点击按钮弹出输入框,在输入框内黏贴外来链接,短代码功能修改链接跳转go=xxx这样 按钮移植这个博客的代码,发现问题: 1、不显示按钮 2、不支持jq 就算重新用这个博客的模板,一样无法使用这个功能,很奇怪,wordpress的版本是一样的! 也就是两个完全一样的环境下,两个模板的一些功能无法使用! 目前正在测试中,看具体是哪里的问题!
笔记 ·

WordPress评论表单添加验证码

上次看到朋友的博客,垃圾评论竟然上万条,这得多久没有进入后台?还是没有清理的习惯? 虽说,评论的用途似乎不是很大,WordPress现在折腾的人也少了吧。终究还是限制了一下评论,添加了一个验证码,且看下后续的效果 原本是想把验证码放在“提交评论”左侧的,但折腾了半天,还是不知道怎么放过来,测试了一些钩子,似乎也都不行。暂且先这样吧!
笔记 ·
Zero零分
站龄15年资深站长
一个喜欢折腾,却又折腾不出像样东西的,不会PHP的PHP程序员!
476
文章
26
评论
27
分类
839
标签
7
友链
onlinelovesky 317355746 122551965@qq.com

百度广告