WordPress实现点击按钮收藏功能,并在个人中心显示已收藏文章

  

1、function添加以下代码 实现收藏的函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function post_shoucang(){
    if(!get_current_user_id()){
        exit(json_encode(['msg'=>'请先登录才能收藏哦!']));
    }
    $id = $_POST["id"];
    $meta = get_post_meta($id,'shoucang',true);
    $shoucang1 = explode(',',get_post_meta($id,'shoucang',true));
    $shoucang =  array_filter($shoucang1);
    $user = get_current_user_id();
    if(in_array($user,$shoucang)){
        foreach($shoucang as $k=>$v){
            if($v==$user){
                unset($shoucang[$k]);
            }
        }
        update_post_meta($id, 'shoucang', implode(",",$shoucang));
        exit(json_encode(['msg'=>'已取消收藏']));
    }else{
        array_push($shoucang,$user);
        update_post_meta($id, 'shoucang', implode(",",$shoucang));
        exit(json_encode(['msg'=>'收藏成功']));
    }  
}
add_action('wp_ajax_post_shoucang','post_shoucang');
add_action('wp_ajax_nopriv_post_shoucang','post_shoucang');

2、前端页面添加收藏按钮

1
2
3
4
5
6
7
8
<?php
$shoucang1 = explode(',',get_post_meta(get_the_ID(),'shoucang',true));
$shoucang = array_filter($shoucang1);
$user = get_current_user_id();
?>
<a class="shoucang <?php if(in_array($user,$shoucang)){ foreach($shoucang as $k=>$v){if($v==$user){echo "on";}}} ;?>" data-id="<?php the_ID();?>" href="javascript:;">
<span>收藏</span>
</a>

3、需要实现收藏功能的前端页面引入js(可以另存为js文件,使用is_single等WordPress的判断后再引入,没必要所有页面都引入,加快访问)

4、新建一个,在需要显示已收藏的文章的页面引入该php文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!--?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args=array(
'cat' =-->
<html>
 <head></head>
 <body>
  // 分类ID,如果不需要限定是哪个分类,可以不写这个条件 'showposts' =&gt; 16, 'paged' =&gt; $paged, );
   query_posts($args); if(have_posts()) : while (have_posts()) : the_post(); ?&gt;
  <!--?php
      $shoucangmeta1 = explode(',',get_post_meta($id,'shoucang',true));
      $shoucangmeta = array_filter($shoucangmeta1);
  ?-->
  <!--?php if(in_array(get_current_user_id(),$shoucangmeta)){ ?-->
  <li> <a class="videolistbox" href="&lt;?php%20the_permalink();?&gt;" title="&lt;?php the_title();?&gt;">
    <div class="thumbbox">
     <!--?php $thumburl = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), array(400,270));?-->
     <img class="defaultthumb" src="" alt="&lt;?php the_title();?&gt;" title="&lt;?php the_title();?&gt;" />
     <i class="videobutton fa fa-caret-square-o-right"></i>
    </div> <h3>
     <!--?php the_title();?--></h3>
    <div class="videolisttag">
     <span> <i class="fa fa-calendar" aria-hidden="true"></i>
      <!--?php the_time('m,d');?--> </span>
     <span> <i class="fa fa-eye" aria-hidden="true"></i>
      <!--?php post_views(' ', ' 次'); ?--> </span>
     <div class="clearfix"></div>
    </div> </a> <a class="posteditbutton shoucang" data-id="&lt;?php the_ID();?&gt;" href="javascript:;">取消收藏</a> </li>
  <!--?php } ?-->
  <!--?php endwhile; else : ?-->
  <div class="sp-mod-empty">
   <img src="&lt;?php%20bloginfo('template_directory');%20?&gt;/images/empty.png" class="empty-images" />
   <p class="empty-txt">您还没有收藏任何内容哦~</p>
  </div>
  <!--?php endif;?-->
  <div class="clearfix"></div>
  <div class="page_navi text-center">
   <!--?php par_pagenavi(9); ?-->
  </div>
  <!--?php wp_reset_query(); ?-->
 </body>
</html>

  •   正在提交中,请稍候...
      评论提交成功
    回复 的评论,点击取消回复