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
<!--?php $shoucang1 = explode(',',get_post_meta(get_the_ID(),'shoucang',true)); $shoucang = array_filter($shoucang1); $user = get_current_user_id(); ?-->
<a class="&quot;shoucang">$v){if($v==$user){echo "on";}}} ;?&gt;" data-id="<!--?php the_ID();?-->" href="javascript:;"&gt;
收藏
</a>

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

1
 

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
<!--?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args=array( 'cat' =-->

// 分类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)){ ?-->
<ul>
    <li><a class="videolistbox" title="&lt;?php the_title();?&gt;" href="&lt;?php%20the_permalink();?&gt;">
</a>
<div class="thumbbox"><!--?php $thumburl = wp_get_attachment_image_src( get_post_thumbnail_id(get_the_ID()), array(400,270));?-->
<img class="defaultthumb" title="&lt;?php the_title();?&gt;" alt="&lt;?php the_title();?&gt;" />
<i class="videobutton fa fa-caret-square-o-right"></i></div>
<h3><!--?php the_title();?--></h3>
<div class="videolisttag"><i class="fa fa-calendar" aria-hidden="true"></i>
<!--?php the_time('m,d');?-->
<i class="fa fa-eye" aria-hidden="true"></i>
<!--?php post_views(' ', ' 次'); ?-->
<div class="clearfix"></div>
</div>
<a class="posteditbutton shoucang" data-id="&lt;?php the_ID();?&gt;">取消收藏</a></li>
</ul>
<!--?php } ?-->
<!--?php endwhile; else : ?-->
<div class="sp-mod-empty">

<img class="empty-images" src="&lt;?php%20bloginfo('template_directory');%20?&gt;/images/empty.png" />
<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(); ?-->
原文链接:https://xiaohost.com/3625.html,转载请注明出处。
0