Envie a ação do formulário para sua página inicial ou para um URL de página específico. Você não pode ter manipulação $ _POST dentro do modelo, porque você precisa redirecionar após o processo, e redirecionar precisa ser acionado antes de qualquer saída HTML.
// you should choose the appropriate tag here
// template_redirect is fired just before any html output
// see - http://codex.wordpress.org/Plugin_API/Action_Reference
add_action('template_redirect', 'check_for_event_submissions');
function check_for_event_submissions(){
if(isset($_POST['event'])) // && (get_query_var('pagename') === 'events)
{
// process your data here, you'll use wp_insert_post() I assume
wp_redirect($_POST['redirect_url']); // add a hidden input with get_permalink()
die();
}
}
Você também pode procurar um nonce para garantir que os dados foram enviados do lugar certo ...