クラシックエディターの通知
クラシックエディターでは、「投稿の下書きが更新されました」という通知の例は次のとおりです:
同等の「投稿の下書きが更新されました」という通知を生成するには、次のようなコードが必要です:
/**
* Hook into the 'admin_notices' action to render
* a generic HTML notice.
*/
function myguten_admin_notice() {
$screen = get_current_screen();
// Only render this notice in the post editor.
if ( ! $screen || 'post' !== $screen->base ) {
return;
}
// Render the notice's HTML.
// Each notice should be wrapped in a <div>
// with a 'notice' class.
echo '<div class="notice notice-success is-dismissible"><p>';
echo sprintf( __( 'Post draft updated. <a href="%s" target="_blank">Preview post</a>' ), get_preview_post_link() );
echo '</p></div>';
};
add_action( 'admin_notices', 'myguten_admin_notice' );
重要なのは、admin_notices
フックを使用すると、開発者が任意のHTMLをレンダリングできることです。一つの利点は、開発者に大きな柔軟性があることです。主な欠点は、任意のHTMLが通知の将来の反復をより困難にする、あるいは不可能にすることです。なぜなら、反復は任意のHTMLに対応する必要があるからです。これが、ブロックエディターに正式なAPIがある理由です。
ブロックエディターの通知
ブロックエディターでは、「投稿が公開されました」という通知の例は次のとおりです:
同等の「投稿が公開されました」という通知を生成するには、次のようなコードが必要です:
( function ( wp ) {
wp.data.dispatch( 'core/notices' ).createNotice(
'success', // Can be one of: success, info, warning, error.
'Post published.', // Text string to display.
{
isDismissible: true, // Whether the user can dismiss the notice.
// Any actions the user can perform.
actions: [
{
url: '#',
label: 'View post',
},
],
}
);
} )( window.wp );
JavaScriptアプリケーションライフサイクル内で通知を生成する際には、この通知データAPIを使用することをお勧めします。
上記の特定のコード例をよりよく理解するために:
wp
はWordPressのグローバルウィンドウ変数です。wp.data
は、ブロックエディターのデータストアにアクセスするためにブロックエディターが提供するオブジェクトです。wp.data.dispatch('core/notices')
は、通知パッケージによってブロックエディターデータストアに登録された機能にアクセスします。createNotice()
は、通知パッケージが新しい通知を登録するために提供する関数です。ブロックエディターは、どの通知を表示するかを知るために通知データストアから読み取ります。
カスタムJavaScriptをブロックエディターに読み込む方法についての入門として、エディターでのアセットのエンキューチュートリアルをチェックしてください。
詳細を学ぶ
ブロックエディターは、通知を生成するための完全なAPIを提供します。公式ドキュメントは、可能なことを確認するのに最適な場所です。
利用可能なアクションとセレクターの完全なリストについては、通知データハンドブックページを参照してください。