janfabry
  • 0
Гуру

Возвращать $post_id при выполнении DOING_AUTOSAVE?

  • 0

Я снова и снова вижу следующую закономерность на этом сайте и в других местах:

add_action( 'save_post', 'wpse14169_save_post' );
function wpse14169_save_post( $post_id )
{
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return $post_id;
    }
    // Other code...
}

Почему я должен вернуться $post_id ? save_post является действием, а возвращаемое значение обработчика действия игнорируется. Само ядро ​​WordPress тоже этого не делает.

Пример Кодекса действительно возвращает$post_id , но это не первая неправильная (или устаревшая) строка в Кодексе.

Я что-то пропустил? Мне нужно вернуться $post_id ? Было ли время, когда это было необходимо?

Share
  1. Для справки вот редакция, которая ввела раннюю версию этого в Кодекс. Я не узнаю логин, вы можете попробовать поискать человека и спросить (если кому интересно).

    • 0
  2. Действие 'save_post' было добавлено в ядро ​​в версии 2.0 и всегда было действием. Просматривая текущие процедуры автосохранения, кажется, что он никогда не вызывает 'save_post' действие напрямую.

    Итак, краткий ответ: нет. Нет причин и никогда не было причин возвращать какое-либо значение этого действия. Конечно, вернуть идентификатор сообщения совсем не помешает.

    • 0
  3. Поскольку с возвращаемым значением ничего не делается, возвращать идентификатор поста бессмысленно и не следует делать. Это только дает место для путаницы.

    Только что попробовал, следующее save_post действие работает нормально.

    function my_save_post($post_id)
    {
        // Stop WP from clearing custom fields on autosave
        if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
            return;
    
        // Prevent quick edit from clearing custom fields
        if (defined('DOING_AJAX') && DOING_AJAX)
            return;
    
        // Sanitize, validate and save ...
    
    }
    
    • 0

Оставить ответ

You must login to add an answer.