web-dev-qa-db-ja.com

誰かが私の投稿の1つに最近コメントしたかどうかを確認

のようなワードプレス機能はありますか -

最近他の人の投稿ではなく、誰かが私の投稿の1つにコメントした場合は、自分のIDが必要ですか?

そのような機能がない場合、どうすればそれを達成できますか?


実際、私は通知システムを構築しています、そしてそれはこのようなものになるでしょう

UserNameはあなたのにコメントされています)postTitle

1
Jamille

現在のユーザーで確認する必要があるようです

これは通知システムなので、現在のユーザーがすべての投稿IDを受け取り、それをグローバルに確認する必要があります。

それ以外の場合は、すべての投稿をチェックインする必要があります。そして、あなたはウェブサイトのどこからでも価値にアクセスすることができないでしょう。

だから、これは最新(コメント、コメントユーザーID)を取得するためのコードです...グローバルに:)

// Grab all posts' (array)ids by current user
function current_author_post_ids() {

    global $current_user;

    $args = array(
        'author' => $current_user->ID,
        'post_type' => 'post',
        'post_status' => 'publish',
        'posts_per_page' => -1
    ); // get all posts


    $author_posts = get_posts($args);

    // check if only one id return
    if (count($author_posts) > 1) {

        $allIds = array();

        foreach ($author_posts as $c_post) :
            $allIds[] = $c_post->ID;
        endforeach;

        return $allIds;

    } else {

        return $author_posts[0]->ID;

    }

}

function get_last_comment_and_author_id() {
    $args = array(
        'number' => '1',
        'post__in' => current_author_post_ids(),
        'orderby' => 'post_date',

        // order by Time Stamp Here
        // 'oderby' => 'meta_type' TIME

        'order' => 'DSC',
        'posts_per_page' => 1
    ); // get only one comment


    // Get the latest comment

    $comments = get_comments($args);

    foreach ($comments as $comment) :
        echo 'Last author ID =' . $comment->user_id . '<br>';
        echo 'Last author =' . $comment->comment_author . '<br>';
        echo 'Last Comment =' . $comment->comment_content;
    endforeach;

}

値を取得するには、この関数を実行します。

 <?php echo get_last_comment_and_author_id(); ?>
1
Ronald

投稿の最後のコメントを取得するには、次のコードを試すことができます。

$comments = get_comments([
    "post_id" => $post_id,
    "number" => 1,
]);

if (isset($comments[0])) {

    $lastComment = $comments[0];

    if ("0" === $lastComment->user_id) {
        // comment of a non connected user
    } else {
        // author identifier is in $lastComment->user_id
    }
}
1
mmm