设置更新后/保存后的自定义消息

时间:2011-05-21 作者:Karl Barton

当我保存帖子时,我正在尝试创建一条自定义消息而不是默认消息,有人知道怎么做吗!

3 个回复
SO网友:Ünsal Korkmaz

http://codex.wordpress.org/Function_Reference/register_post_typeexample:

    //add filter to ensure the text Book, or book, is displayed when user updates a book 
add_filter(\'post_updated_messages\', \'codex_book_updated_messages\');
function codex_book_updated_messages( $messages ) {
  global $post, $post_ID;

  $messages[\'book\'] = array(
    0 => \'\', // Unused. Messages start at index 1.
    1 => sprintf( __(\'Book updated. <a href="%s">View book</a>\'), esc_url( get_permalink($post_ID) ) ),
    2 => __(\'Custom field updated.\'),
    3 => __(\'Custom field deleted.\'),
    4 => __(\'Book updated.\'),
    /* translators: %s: date and time of the revision */
    5 => isset($_GET[\'revision\']) ? sprintf( __(\'Book restored to revision from %s\'), wp_post_revision_title( (int) $_GET[\'revision\'], false ) ) : false,
    6 => sprintf( __(\'Book published. <a href="%s">View book</a>\'), esc_url( get_permalink($post_ID) ) ),
    7 => __(\'Book saved.\'),
    8 => sprintf( __(\'Book submitted. <a target="_blank" href="%s">Preview book</a>\'), esc_url( add_query_arg( \'preview\', \'true\', get_permalink($post_ID) ) ) ),
    9 => sprintf( __(\'Book scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview book</a>\'),
      // translators: Publish box date format, see http://php.net/date
      date_i18n( __( \'M j, Y @ G:i\' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
    10 => sprintf( __(\'Book draft updated. <a target="_blank" href="%s">Preview book</a>\'), esc_url( add_query_arg( \'preview\', \'true\', get_permalink($post_ID) ) ) ),
  );

  return $messages;
}
SO网友:kaiser

消息存储\'message\' 部分$_GET 数组负责将实际消息值保存为integer. 这意味着传入的所有内容都将设置为实际消息。消息本身存储在管理UI模板的全局数组中。它的名字是$messages 并且每个默认值有三个键:

  1. page
  2. post
  3. attachment
消息存储为主$messages 大堆

注意:

需要记住的一些事情(WP core v4.0.1):

0 未使用

  • attachment 当前消息是一种黑客行为,只需字符串\'Media attachment updated.\' 在每个关键点上
  • 所有消息子数组都有10个键长
    • 如何添加自定义消息

      使用post_updated_messages 过滤器:

      add_filter( \'post_updated_messages\', function( $messages )
      {
          $messages[\'post\'][2] = \'My awesome custom field just updated. Congratulations!\';
          return $messages;
      } );
      
      看看~/wp-admin/edit-form-advanced.php 哪个消息用于什么。

      如果未使用post类型,则回退是post post类型消息数组。

      自定义帖子类型

      您可以通过bespoken过滤器上的回调安全地添加自己的一组消息。只需确保使用自定义帖子类型名称作为messages数组的键:

      add_filter( \'post_updated_messages\', function( $messages )
      {
          $messages[\'my_custom_post_type\'][2] = \'Go, buy some milk!\';
          return $messages;
      } );
      
      回调本身可能是最好的连接方式

      do_action( "load-{$pagenow}" )
      

    SO网友:Vemman

    我想这可能会有所帮助。

    在浏览了各种网站的长度和宽度之后,我只能在这里得到一条自定义消息。

    https://onextrapixel.com/10-tips-for-a-deeply-customised-wordpress-admin-area/

    function frl_on_save_post($post_id, $post) {/* add warning filter when saving post */
    
        if($post->post_type == \'post\') //test for something real here       
            add_filter(\'redirect_post_location\', \'frl_custom_warning_filter\');
    
    }
    add_action(\'save_post\', \'frl_on_save_post\', 2, 2);
    
    function frl_custom_warning_filter($location) { /* filter redirect location to add warning parameter*/
    
        $location = add_query_arg(array(\'warning\'=>\'my_warning\'), $location);
        return $location;
    }
    
    function frl_warning_in_notice() { /* print warning message */
    
        if(!isset($_REQUEST[\'warning\']) || empty($_REQUEST[\'warning\']))
            return;
    
        $warnum = trim($_REQUEST[\'warning\']);
    
        /* possible warnings codes and messages */                 
        $warnings = array(
            \'my_warning\' => __(\'This is my truly custom warning!\', \'frl\')
        );
    
        if(!isset($warnings[$warnum]))
            return; 
    
        echo \'<div class="error message"><p><strong>\';
        echo $warnings[$warnum];
        echo \'</strong></p></div>\';
    }       
    add_action(\'admin_notices\', \'frl_warning_in_notice\');
    

    结束

    相关推荐

    Updates for a private plugin?

    如果我写一个私有插件,有没有办法使用WordPress自动更新机制来更新它 我想封装这个功能,但它是我自己的5个博客特有的,所以它不是公共插件资源的好候选。但我喜欢这种简单的更新机制 有没有办法做到这一点