将带有子字段的字段添加到WP作业管理器

时间:2015-05-08 作者:ahurleb

我一直在为WP Job Manager开发一个自定义插件,通过过滤器修改显示的内容。我已经使用了www.wpjobmanager上的许多教程。com/文档,但我只停留在一点上。

我正在尝试从简历加载项(演示)中重新创建一个功能here) 您可以在其中添加其他教育或经验领域。我正在尝试在主WP Job Manager插件中重新创建该功能,以填充地址的可选子字段。

This is a scaled down version of the code I have for now: http://pastebin.com/fAVq9vfu

我已经成功地将字段和子字段添加到表单中(有一个单独的模板文件来呈现表单)。它们还注册在全局$\\u POST变量中,如我在预览模板中执行var\\u转储时所示(sample screenshot), 但当涉及到存储值时,我把事情搞砸了。没有任何带有子文件的字段保存在post元数据表中。我尝试了几个选项,最近的一个是包括并让我的类扩展WP\\u Job\\u Manager\\u Forms类(https://github.com/mikejolley/WP-Job-Manager/blob/master/includes/class-wp-job-manager-forms.php). 我相信我可以通过附带的过滤器完成我想做的事情,但我不确定是哪一个或如何完成。

我认为我可能需要在某个地方调用get\\u posted\\u fields(),因为我不完全确定它是否正在捕获我的自定义get\\u posted\\uu{subfield}\\u field方法。

有人有什么建议吗?

2 个回复
最合适的回答,由SO网友:Mike Jolley 整理而成

我发现您的代码片段/代码中缺少一些东西。

每个字段(您的位置字段)都需要包括优先级:

\'priority\' => 19,

https://gist.github.com/mikejolley/76d8b538fe489377793b 对于每个重复的字段,都需要一个模板文件。我们以后可能会简化此操作,但正如我通过支持所解释的,重复的字段是新的:)

SO网友:Domain

我们可以为“简历管理器”设置不同类型的字段(&;保存它。我们可以通过过滤器实现这一点,如下所示,

//code to add custom field for Resume Manager on front end
add_filter( \'submit_resume_form_fields\', \'wdm_customize_resume_fields\' );

function wdm_customize_resume_fields($fields)
{
   $fields[\'resume_fields\'][\'candidate_address\'] = array(
    \'label\'       => __( \'Your Address\', \'wp-job-manager-resumes\' ),
    \'type\'        => \'text\',
    \'required\'    => false,
    \'description\' => __(\'Add your address here\',\'wp-job-manager-resumes\'),
    \'priority\'    => 2
    );

   return $fields;
}
在这里,您可以指定新字段、添加其标签、为其键入以及使用“优先级”指定其位置。

现在我们需要保存字段,我们可以使用以下代码,

add_action( \'resume_manager_update_resume_data\', \'wdm_save_resume_custom_field\', 10, 2 );

function wdm_save_resume_custom_field( $resume_id, $values ) {

  if(!empty($resume_id) && !empty($values)) {

     if(isset($values[\'resume_fields\'][\'candidate_address\']) {

       update_post_meta( $resume_id, \'_candidate_address\', $values[\'resume_fields\'][\'candidate_address\'] );
     }
  }
}
如果已设置,这将更新“\\u Candidate\\u address”元密钥中的候选地址。

此保存的字段也需要显示在仪表板中。我们可以通过以下方式实现这一目标:,

add_filter( \'resume_manager_resume_fields\', \'wdm_resume_fields_dashboard\' );

function wdm_resume_fields_dashboard($fields){

   $fields[\'_candidate_address\'] = array(
    \'label\'       => __( \'Your Address\', \'wp-job-manager-resumes\' ),
    \'placeholder\' => __( \'Add your address here\', \'wp-job-manager-resumes\' ),
    \'type\'        => \'text\'
);

  return $fields;
}

结束

相关推荐

JQuery Plugins in Wordpress

我已经能够在某种程度上拼凑出应该如何做到这一点,但我真的很难做到这一点。我想使用Table Sorter插件(http://tablesorter.com) 在自定义页面模板中显示数据,但我不确定它是否正确。我已经钩住了“wp\\u enqueue\\u scripts”,并使用此函数将表分类器JS文件排入队列。我相信这是正确的,但是我还需要在JQuery Ready()函数中放置一行,但是我不确定如何从自定义页面模板中执行此操作。有人能解释一下吗?<?php /* Templat