我正在添加验证,因此如果帖子属于特定类别,则需要设置某些自定义字段.
这应该是简单的挂钩wp_insert_post_data和admin_notices,但没有引起重定向admin_notices回调消失.
好的 - 所以我创建了一个使用Session在重定向中存储我的错误消息的hack:
function set_post_pending($data, $postarr) {
// If it's not valid...
$error = "You are missing some Custom Fields.";
$_SESSION['admin_notices'] = $error;
$data['post_status'] = 'pending';
return $data;
}
add_filter('wp_insert_post_data', 'set_post_pending',1,2);
function session_admin_notice() {
if($out = $_SESSION['admin_notices']) {
$_SESSION["admin_notices"] = "";
echo $out;
}
return false;
}
add_action('admin_notices', "session_admin_notice");
Run Code Online (Sandbox Code Playgroud)
这种解决方案的问题是,一些会话打电话时怎么不可用session_admin_notice,它有一个简单的(但疯狂的)解决方案:
public static function fix_session_bs() {
// TODO: Why do I have to do this?
if(!session_id() && …Run Code Online (Sandbox Code Playgroud) 目前我在WordPress中为WooCommerce开发了一个扩展.因此,当用户在没有WooCommerce插件的情况下激活我的扩展时,我想向他们显示一条警告消息.
怎么做?