Sonrası belli bir kategoride ise, bu set edilmesi gereken bazı özel alanları ihtiyacı yüzden doğrulama ekliyorum.
Bu kolay çengel wp_insert_post_data
ve admin_notices
olmalı, ama admin_notices
geri kaybolmasına neden olan bir yönlendirme var.
Tamam - Yani yönlendirme karşısında benim hata mesajını saklamak için oturumu kullanan kesmek oluşturuldu:
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");
Bu çözüm ile sorunu kolay (ama crazy) çözümü vardır ki, session_admin_notice
çağrılırken some nasıl oturumu mevcut olmadığıdır:
public static function fix_session_bs() {
// TODO: Why do I have to do this?
if(!session_id() && $_COOKIE["PHPSESSID"]) {
session_start($_COOKIE["PHPSESSID"]);
}
}
add_action('admin_init', 'fix_session_bs');
Soru: Neden bir hata mesajı atmak için tüm bu delilik geçmesi gerekiyor?
What am I doing wrong?