【发布时间】:2016-02-19 05:55:33
【问题描述】:
我正在使用 Wordpress 主题 WPJobus,我有必要修改简历提交和简历编辑的工作流程。
提供这些操作的函数像往常一样位于文件/mytheme/functions.php中
wpjobusSubmitResumeForm()
wpjobusEditResumeForm()
在他们两个上,我都删除了在每次编辑发生时将帖子状态切换为“草稿”的整个代码部分,因为我需要让新用户可以插入他们自己的帖子(简历)并在没有管理员监督。
无论如何,我进行了所有更改,一切正常,除了带有 posts.post_title 字段的函数 wp_update_post()!
代码如下所示:
$post_information = array(
'ID' => $td_current_post,
'post_title' => $_POST['fullName'],
'post_content' => strip_tags($_POST['postContent']),
'post_type' => 'resume',
'post_name' => $td_current_post,
'comment_status' => 'closed',
'ping_status' => 'closed',
'post_status' => 'publish'
);
$td_post_id = wp_insert_post($post_information);
wp_update_post(
array(
'ID' => $td_post_id,
'post_name' => $td_post_id
)
);
INSERT 工作正常,但是当我调用 UPDATE(这对于 post_name 字段是绝对必要的)时,post_name 会正确更新,而 post_title 值会被删除。
即使我尝试在 wp_post_update 数组中传递 'post_title'=>$_POST['fullName'] 也会得到相同的效果。
有人遇到过同样的问题吗?
我也发现了这个,但它根本没有帮助: wp_update_post inserts empty title and content
【问题讨论】:
-
为什么将
post_name设置为更新中的ID? -
问题可能是主题将自己插入到进程中,但由于它是高级主题,因此无法根据您问题中的信息进行调试。
-
嗨,因为它是 WPJobus 主题的默认特性。创建新的简历后,它会生成一个如下所示的 URL:www.mywebproj.com/resume/$resumeID 检查一下:alexgurghis.com/themes/wpjobus/resume/565
-
你的意思是你需要整个源代码来分析它并检查可能的错误......是的,不幸的是这是一个糟糕的问题:(
-
我会搜索“post_title”的所有主题代码,看看它是否正在修改它。它可能正在使用pre_post_update 钩子。