gpt4 book ai didi

WordPress 自定义元框验证

转载 作者:行者123 更新时间:2023-12-02 11:25:48 24 4
gpt4 key购买 nike

有没有办法在不使用 JavaScript 的情况下验证自定义元框字段。如果它没有验证,我想停止将帖子保存到数据库中。

最佳答案

由于“save_post”操作是在发布和更新之后运行的,因此如果没有黑客替代方案,实际上无法验证自定义 key 。

但是,我认为您可以通过按照 Viral 建议的方式使用“save_post”来模仿您想要的功能,而不是在验证错误时中断或取消保存过程,您可以完全删除帖子:

add_action('save_post', 'validate_meta');
function validate_meta($post_id)
{
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return $post_id;
/*USE THIS ONLY IF YOU ARE UTILIZING NONCE FIELDS IN A CUSTOM META BOX
if ( !wp_verify_nonce( $_POST['metabox_nonce'], basename(__FILE__) ) )
return $post_id;*/
/*Use plugin_basename(__FILE__) if this is an actual plugin, rather than
a part of your theme*/

if ( 'page' == $_POST['post_type'] )
{
if ( !current_user_can( 'edit_page', $post_id ) )
return $post_id;
}
else
{
if ( !current_user_can( 'edit_post', $post_id ) )
return $post_id;
}

/*VALIDATE YOUR METADATA HERE HOWEVER YOU LIKE
if(is_valid($_POST['metadata']))
$validated = true;
else
$validated = false;
*/

if(!$validated)
wp_delete_post($post_id, true);
else
return $post_id;
}

这种方法唯一需要注意的是它也将在发布和更新上运行。您可能需要考虑添加一项检查,以确保仅删除新发布的帖子,并将更新的帖子回滚到以前的版本,并删除无效的修订版本。

关于WordPress 自定义元框验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815983/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com