web-dev-qa-db-ja.com

フロントエンド上の注意

再転記しています。私の最後の質問は有名ではなかったので。

私のユーザーはフロントエンドからカスタム投稿タイプ(プロジェクト)を送信しています。ユーザーがアクションを実行したときの通知(管理ボードに表示されているものなど)をフロントエンドに表示するにはどうすればよいですか。投稿の編集など。

Update/submit(post_updated_messages ...)のためのフックがあることを私は知っていますが、それらはフロントエンドには何も表示しません。

私は以下を入れてみましたが、うまくいきません。

add_filter('post_updated','alert_user');

function alert_user()
{
add_action('display_message','prepare_text');
}

function prepare_text(){
return 'You did it!';
}

私のテーマでは

do_action('display_message');

Prepare_textがdisplay_messageにフックされることは決してないので、動作しません。

何か手助け?

ありがとう

1
semyou

the_contentをフィルタリングできます:

add_action( 'post_updated', 'wpse105892_add_message', 10 );
function wpse105892_add_message() {
    add_filter( 'the_content', 'wpse105892_display_message' );
}

function wpse105892_display_message( $content ) {
    // remove the action once it's run
    remove_action( 'post_updated', 'wpse105892_add_message', 11 );

    $content = "<div class='your-message'>You did it!</div>\n\n" . $content;
    return $content;
}
3
Pat J