首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在WordPress中实现自定义逻辑?

如何在WordPress中实现自定义逻辑?
EN

Stack Overflow用户
提问于 2018-06-24 03:46:32
回答 1查看 402关注 0票数 0

我正在做我的网站,我想补充两件事。

  • 链接当用户点击它时,他/她的用户id和当前的帖子id就会被插入到数据库和计数器中。假设用户登录并打开帖子,链接是这样的:我感兴趣(0)这里0是点击这个链接的唯一登录的人的总数的计数值。第二个链接类似于:I want to work (0)同样的逻辑适用于此。**

最后需要显示特定职位的感兴趣的工作人员的编号(自定义职位类型:工作)。

有一个表,其中每一行都有帖子(工作)的标题,我可以通过WordPress原生函数获取帖子的值,然后将其与数据库中的帖子id进行比较,然后检索它的状态(无兴趣和无工作),然后使用jQuery通过AJAX进行注入。

我已经为此创建了这个表,但我遇到了困难:

  1. 通过jquery获取帖子ID和用户ID由于某些原因,我无法修改当前的自定义帖子模板,因为我正在使用wp作业管理器处理自定义职务帖子。
  2. 我所需要的就是找到一种方法,让唯一的人依赖特定的帖子

到目前为止,我想出了一种方法,通过jQuery将两个链接附加到链接,并通过jQuery添加单击函数,添加ajax以获取数据并输入到我已经编码的PHP文件中,在该PHP文件中,它将通过post值插入到表中,然后返回响应。在第二个页面中,我希望在表行中插入状态,为此我将使用jQuery。

这是目前我手头上的。

PHP

代码语言:javascript
复制
<?php
global wpdb;
if(isset($_POST['if_intested'])&&isset($_POST['if_working'])&&isset($_POST['user_id'])&&isset($_POST['post_id'])){
  if($wpdb->insert('wp_custom_jobmanager', array ( "post_id" => $_POST['post_id'], "user_id" => $_POST['user_id'], "if_interested" => $_POST['if_interested'] , "if_working" => $_POST['if_working']))){
    return "Thanks your feedback has been saved";
  }else {
    return "Sorry something went wrong Please Try Logging in again and try again.";
  }
}
?>

jQuery

代码语言:javascript
复制
 jQuery("#link").click(function(){
    if(jQuery("body").hasClass("single")){
    jQuery('<p id="stauts-interested">interested 24</p><br><p id="status-work">Working 43</p>').appendTo(".job-manager-single-alert-link");
    }
});

现在,感兴趣的和工作的数量应该从数据库中提取,并在单击时增加唯一登录用户的数量。

EN

回答 1

Stack Overflow用户

发布于 2018-06-24 06:01:31

为什么不在自定义帖子类型中添加一个自定义字段,而不是使用自定义表呢?这几乎是一个最好的例子,说明了什么时候使用它是合适的。只需使用WP Ajax钩子上的get_post_metaupdate_post_meta将当前用户id添加到数组中。

代码语言:javascript
复制
add_action( 'wp_ajax_increment_cpt_interests' );
add_action( 'wp_ajax_nopriv_increment_cpt_interests' );

function increment_cpt_interests(){
    extract( $_POST );

    // Get current interested people
    $interested_people = get_post_meta( $post_id, 'interested', true );
    $interested_user   = get_current_user_id();

    // If current user isn't already "interested"
    if( !in_array( $interested_user, $interested_people ){
        // Add them to the array of interested people
        update_post_meta( $post_id, 'interested_people', $interested_people[$interested_user] );
    }
}

只需使用wp_localize_script (阅读更多here)将帖子ID、Ajax URL (以及当前用户id )传递给您想要单击的按钮。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51004528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档