クラシックエディターの通知

クラシックエディターでは、「投稿の下書きが更新されました」という通知の例は次のとおりです:

クラシックエディターでの投稿の下書きが更新されました

同等の「投稿の下書きが更新されました」という通知を生成するには、次のようなコードが必要です:

  1. /**
  2. * Hook into the 'admin_notices' action to render
  3. * a generic HTML notice.
  4. */
  5. function myguten_admin_notice() {
  6. $screen = get_current_screen();
  7. // Only render this notice in the post editor.
  8. if ( ! $screen || 'post' !== $screen->base ) {
  9. return;
  10. }
  11. // Render the notice's HTML.
  12. // Each notice should be wrapped in a <div>
  13. // with a 'notice' class.
  14. echo '<div class="notice notice-success is-dismissible"><p>';
  15. echo sprintf( __( 'Post draft updated. <a href="%s" target="_blank">Preview post</a>' ), get_preview_post_link() );
  16. echo '</p></div>';
  17. };
  18. add_action( 'admin_notices', 'myguten_admin_notice' );

重要なのは、admin_noticesフックを使用すると、開発者が任意のHTMLをレンダリングできることです。一つの利点は、開発者に大きな柔軟性があることです。主な欠点は、任意のHTMLが通知の将来の反復をより困難にする、あるいは不可能にすることです。なぜなら、反復は任意のHTMLに対応する必要があるからです。これが、ブロックエディターに正式なAPIがある理由です。

ブロックエディターの通知

ブロックエディターでは、「投稿が公開されました」という通知の例は次のとおりです:

ブロックエディターでの投稿が公開されました

同等の「投稿が公開されました」という通知を生成するには、次のようなコードが必要です:

  1. ( function ( wp ) {
  2. wp.data.dispatch( 'core/notices' ).createNotice(
  3. 'success', // Can be one of: success, info, warning, error.
  4. 'Post published.', // Text string to display.
  5. {
  6. isDismissible: true, // Whether the user can dismiss the notice.
  7. // Any actions the user can perform.
  8. actions: [
  9. {
  10. url: '#',
  11. label: 'View post',
  12. },
  13. ],
  14. }
  15. );
  16. } )( window.wp );

JavaScriptアプリケーションライフサイクル内で通知を生成する際には、この通知データAPIを使用することをお勧めします。

上記の特定のコード例をよりよく理解するために:

  • wpはWordPressのグローバルウィンドウ変数です。
  • wp.dataは、ブロックエディターのデータストアにアクセスするためにブロックエディターが提供するオブジェクトです。
  • wp.data.dispatch('core/notices')は、通知パッケージによってブロックエディターデータストアに登録された機能にアクセスします。
  • createNotice()は、通知パッケージが新しい通知を登録するために提供する関数です。ブロックエディターは、どの通知を表示するかを知るために通知データストアから読み取ります。

カスタムJavaScriptをブロックエディターに読み込む方法についての入門として、エディターでのアセットのエンキューチュートリアルをチェックしてください。

詳細を学ぶ

ブロックエディターは、通知を生成するための完全なAPIを提供します。公式ドキュメントは、可能なことを確認するのに最適な場所です。

利用可能なアクションとセレクターの完全なリストについては、通知データハンドブックページを参照してください。