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

时间:2018-06-23 19:46:32

标签: javascript php jquery wordpress

我正在我的网站上,我想添加两件事。

  • 一个链接,当用户单击它时,他/她的用户ID和当前帖子ID将被获取并插入数据库中,并且计数器增加。

  • 让我们假设用户登录并打开该帖子,然后链接如下所示:我很感兴趣(0)这里的0是唯一已登录用户总数的计数值谁点击了此链接。第二个链接将是:我想工作(0)此处应用相同的逻辑。**

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

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

我为此创建了表格,但遇到了困难:

  1. 由于某些原因,我通过jquery获取POST ID和USER ID,因为我无法使用wp作业管理器来定制作业,因此无法修改当前的定制文章模板。
  2. 我所需要做的就是找到一种方法,让独特的人来指望特定的职位

到目前为止,我想到了一种通过jQuery附加两个链接以及通过jQuery向链接添加添加点击功能的方法,其中添加ajax来获取数据并输入到我已编码的PHP文件以及该PHP文件中它将通过发布值插入表格,然后返回响应。在第二页中,我要在表格行中插入状态,我将为此使用jQuery。

这是我目前手头上的东西。

PHP

<?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

 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");
    }
});

现在,应该从数据库中获取感兴趣和工作的人数,并且对于点击后唯一身份登录的用户也应增加数量。

1 个答案:

答案 0 :(得分:1)

为什么不将自定义字段添加到“自定义帖子类型”中而不使用自定义表?这几乎是何时适当使用它的主要示例。只需使用WP Ajax挂钩上的get_post_metaupdate_post_meta将当前用户ID添加到数组中即可。

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,如果需要)传递到您要单击的按钮。