Wordpress - Создание собственных сообщений администратора для пользовательского типа сообщения - PullRequest
2 голосов
/ 23 июля 2011

Я создал пользовательский тип записи, называемый маршрутами, и я хотел бы иметь возможность возвращать сообщения об ошибках на экран, когда что-то идет не так во время сохранения / обновления, например. Тип позволяет загружать файлы gpx / kml и проверять, что был опубликован правильный тип. На данный момент он просто возвращается, если идет не так - как я могу установить сообщение об ошибке?

//Return if file type wrong.
if($file_type != 'application/octet-stream' && $file_type != 'application/gpx+xml' ) {
return;
}

1 Ответ

3 голосов
/ 17 июля 2012

попробуйте

пример:

add_admin_message('Please enter valid URL for the project link', true);
add_admin_message('Your custom post type was updated');

источник:

<?php

/**
 * Messages with the default wordpress classes
 */
function showMessage($message, $errormsg = false)
{
    if ($errormsg) {
        echo '<div id="message" class="error">';
    }
    else {
        echo '<div id="message" class="updated fade">';
    }

    echo "<p>$message</p></div>";
}

/**
 * Display custom messages
 */
function show_admin_messages()
{
    if(isset($_COOKIE['wp-admin-messages-normal'])) {
        $messages = strtok($_COOKIE['wp-admin-messages-normal'], "@@");

        while ($messages !== false) {
            showMessage($messages, true);
            $messages = strtok("@@");
        }

        setcookie('wp-admin-messages-normal', null);
    }

    if(isset($_COOKIE['wp-admin-messages-error'])) {
        $messages = strtok($_COOKIE['wp-admin-messages-error'], "@@");

        while ($messages !== false) {
            showMessage($messages, true);
            $messages = strtok("@@");
        }

        setcookie('wp-admin-messages-error', null);
    }
}

/** 
  * Hook into admin notices 
  */
add_action('admin_notices', 'show_admin_messages');

/**
 * User Wrapper
 */
function add_admin_message($message, $error = false)
{
    if(empty($message)) return false;

    if($error) {
        setcookie('wp-admin-messages-error', $_COOKIE['wp-admin-messages-error'] . '@@' . $message, time()+60);
    } else {
        setcookie('wp-admin-messages-normal', $_COOKIE['wp-admin-messages-normal'] . '@@' . $message, time()+60);
    }
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...