私はこの機能を持っていて、作者が新しい記事を作成するたびに作者を購読しているすべてのユーザーに電子メールを送ります。投稿が更新された場合、または新しい投稿がユーザーによって公開された場合は、数秒ごとに機能を調整して確認します。もしそうなら、その作者の全ての購読者を "live"通知ポップアップを通して更新してください(実際にはライブではありませんが、setInterval関数を通して行われるようにライブのようです)。とにかく、どんな助けでも大歓迎です!
これが現在の関数です:
add_action('publish_listings', 'vba_update', 10, 1);
add_action('draft_listings', 'vba_update', 10, 1);
function vba_update($post_id){
$args = array(
'include' => tb_get_followers($user_id)
);
$user_query = new WP_User_Query($args);
if ( !empty($user_query->results) ) :
$post_title = get_the_title( $post_id );
$post_url = get_permalink( $post_id );
$subject = 'A post has been updated';
$message = "A post has been updated on your website:\n\n";
$message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n";
/** Send an individual message to each user */
foreach ( $user_query->results as $user ) :
wp_mail($user->data->user_email, $subject, $message);
endforeach;
endif;
}
だから基本的にあなたは投稿変更をチェックするajaxメソッドが欲しいです。
これはフロントエンドとバックエンドのためのWP ajaxに関する素晴らしい記事です 。
手短に言えば、次のことを行います。
wp_ajax_{your_custom_action}
を使用して、wp ajaxサーバー側処理を作成します。 OR WP REST APIを使用します。setinterval
は使いません。 ajax応答が良好であれば、ページのロード時に最初のajax呼び出しを行い、X秒後に次のajax呼び出しを行います。