0

我是 Wordpress 的新手。我在插件中创建了一个自定义帖子类型,并尝试向它添加自定义验证。

在保存这种类型的新帖子(在管理员中)之前,我想检查提交的帖子标题是否已经存在。所以我认为它可能是这样的:

  • 用户填写表格并提交;
  • 保存之前(在一个钩子中),提交的标题在数据库中搜索相同的标题和相同的帖子类型;
  • 如果找到一些条目,则阻止保存帖子,定义错误消息并将浏览器重定向到帖子表单,并预先填写提交的数据。并向用户显示错误消息。
  • 如果没有找到条目,则不中断流程,正常保存帖子。

这个逻辑正确吗?如果没有,应该怎么做?

因为我是 Wordpress 的新手,所以我没有使用 OOP 方法,至少现在还没有。

谢谢!

4

2 回答 2

1

好吧,看来我提出的逻辑是无效的。

此外,看起来阻止帖子被保存的唯一方法是使用 JavaScript 验证表单。

我能找到的更接近的答案是这个。然而,如果用户正在快速编辑帖子,它不包括验证。

所以,再一次,使用 JavaScript 进行验证似乎是最好的选择——至少在这种情况下,它不包含像文件上传这样更复杂的字段。

感谢您的帮助!

编辑: Duplicate Title Checker插件给出了如何用 JS 来做这件事的想法。

于 2014-02-19T14:42:58.383 回答
0

我使用了Duplicate Title checker并在 duplicate-title-checker.php 中更改了第 34 行...

$sim_titles = "SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' AND post_title = '{$title}' AND ID != {$post_id} ";

到...

$sim_titles = "SELECT post_title FROM $wpdb->posts WHERE post_status = 'publish' AND post_title = '{$title}' AND ID != {$post_id} ";

似乎可以解决问题。

于 2015-11-24T13:25:19.593 回答