2013-06-27 4 views
4

Это неловко, но все же я удивлен, увидев, что по умолчанию при добавлении нового сообщения в wordpress нет проверки. Когда я не вхожу в заголовок и даже контент, а просто нажимаю «Опубликовать», он говорит, что публикация публикуется, и когда я просматриваю интерфейс, нового сообщения нет.wordpress add post validation

Как мог Wordpress пропустить простую проверку для добавления сообщения? По крайней мере, я ожидал проверки на стороне сервера (если не на стороне клиента). Не знаю, почему валидация пропущена. Это до Wordpress, независимо от того, включают ли они его в новые версии.

Но я хочу знать, как я могу добавить проверку javascript (или jquery) для добавления сообщения в wordpress. Я знаю, что это вовсе не должно быть сложно. Но, будучи новичком в wordpress, я хотел бы получить некоторый намек.

От Firebug, я мог видеть, форма рендеринга, как:

<form id="post" method="post" action="post.php" name="post"> 
... 
</form> 

Где я должен поместить мой яваскрипта код проверки?

ответ

3

Это не ошибка, WordPress намеренно делают это (чтобы сохранить изменения AFAIK). в любом случае, это может работать, но может быть более эффективные способы, чем это (паста в файле functions.php)

add_action('admin_notices', 'custom_error_notice'); 
function custom_error_notice(){ 
    global $current_screen, $post; 
    if ($current_screen->parent_base == 'edit'){ 
     if((!$post->post_name && !$post->post_content) && $_GET['post']) { 
      wp_redirect(admin_url('post-new.php?empty=1')); 
     } 
     if($_GET['empty']) echo '<div class="error"><p>Warning - Please fill up all fields correctly!</p></div>'; 
    } 
} 

Кроме того, это необходимо использовать wp_redirect и для avoid header already sent error message, вставить это в functions.php в верхней части всего остального кода

function callback($buffer) { 
    // You can modify $buffer here, and then return the updated code 
    return $buffer; 
} 
function buffer_start() { ob_start("callback"); } 
function buffer_end() { ob_end_flush(); } 

// Add hooks for output buffering 
add_action('init', 'buffer_start'); 
add_action('wp_footer', 'buffer_end'); 
1

Ну, вы правы, WordPress не имеет проверки в сообщении Редактировать экран,

Почему бы вам не попробовать Post require Fields плагина, где вы можете легко Проверить Что нужно проверить, вам не требуется писать одну строку кода javascript или PHP.

Вот скриншот для Backend управления

enter image description here

+0

Я пробовал этот плагин, но это проверка только для редактирования поста, а не на новую должность. –