显示当前用户帖子的最新评论的 wordpress 页面
wordpress page that Shows recent comments on the current user's posts
在我的 wordpress 网站中,我让注册用户在网站上发帖,现在我需要制作一个页面,显示当前用户发帖的最新评论。
我找到了这段代码 ref 它显示了当前用户的评论而不是他的帖子的评论
<?php
/*
Plugin Name: Show Recent Comments by a particular user
Plugin URI: http://blog.ashfame.com/?p=876
Description: Provides a shortcode which you can use to show recent comments by a particular user
Author: Ashfame
Author URI: http://blog.ashfame.com/
License: GPL
Usage:
*/
add_shortcode ( 'show_recent_comments', 'show_recent_comments_handler' );
function show_recent_comments_handler( $atts, $content = null )
{
extract( shortcode_atts( array(
"count" => 10,
"pretty_permalink" => 0
), $atts ));
$output = ''; // this holds the output
if ( is_user_logged_in() )
{
global $current_user;
get_currentuserinfo();
$args = array(
'user_id' => $current_user->ID,
'number' => $count, // how many comments to retrieve
'status' => 'approve'
);
$comments = get_comments( $args );
if ( $comments )
{
$output.= "<ul>\n";
foreach ( $comments as $c )
{
$output.= '<li>';
if ( $pretty_permalink ) // uses a lot more queries (not recommended)
$output.= '<a href="'.get_comment_link( $c->comment_ID ).'">';
else
$output.= '<a href="'.get_settings('siteurl').'/?p='.$c->comment_post_ID.'#comment-'.$c->comment_ID.'">';
$output.= $c->comment_content;
$output.= '</a>';
$output.= "</li>\n";
}
$output.= '</ul>';
}
}
else
{
$output.= "<h2>You should be logged in to see your comments. Make sense?</h2>";
$output.= '<h2><a href="'.get_settings('siteurl').'/wp-login.php?redirect_to='.get_permalink().'">Login Now →</a></h2>';
}
return $output;
}
?>
我可以在此代码中更改什么以使其获取当前用户帖子的评论而不是他自己的评论?
Wordpress 上的 get_comments 函数有一大堆参数,您可以通过它传递。要根据 post 的作者而不是评论的 user_id 搜索评论,您需要 "post_author" 参数 -
https://codex.wordpress.org/Function_Reference/get_comments
因此,请考虑相应地更改您的 $args 数组,以便它查找 current_user 的 ID 为 post_author:
的匹配项
$args = array(
'post_author' => $current_user->ID,
'number' => $count, // how many comments to retrieve
'status' => 'approve'
);
在我的 wordpress 网站中,我让注册用户在网站上发帖,现在我需要制作一个页面,显示当前用户发帖的最新评论。
我找到了这段代码 ref 它显示了当前用户的评论而不是他的帖子的评论
<?php
/*
Plugin Name: Show Recent Comments by a particular user
Plugin URI: http://blog.ashfame.com/?p=876
Description: Provides a shortcode which you can use to show recent comments by a particular user
Author: Ashfame
Author URI: http://blog.ashfame.com/
License: GPL
Usage:
*/
add_shortcode ( 'show_recent_comments', 'show_recent_comments_handler' );
function show_recent_comments_handler( $atts, $content = null )
{
extract( shortcode_atts( array(
"count" => 10,
"pretty_permalink" => 0
), $atts ));
$output = ''; // this holds the output
if ( is_user_logged_in() )
{
global $current_user;
get_currentuserinfo();
$args = array(
'user_id' => $current_user->ID,
'number' => $count, // how many comments to retrieve
'status' => 'approve'
);
$comments = get_comments( $args );
if ( $comments )
{
$output.= "<ul>\n";
foreach ( $comments as $c )
{
$output.= '<li>';
if ( $pretty_permalink ) // uses a lot more queries (not recommended)
$output.= '<a href="'.get_comment_link( $c->comment_ID ).'">';
else
$output.= '<a href="'.get_settings('siteurl').'/?p='.$c->comment_post_ID.'#comment-'.$c->comment_ID.'">';
$output.= $c->comment_content;
$output.= '</a>';
$output.= "</li>\n";
}
$output.= '</ul>';
}
}
else
{
$output.= "<h2>You should be logged in to see your comments. Make sense?</h2>";
$output.= '<h2><a href="'.get_settings('siteurl').'/wp-login.php?redirect_to='.get_permalink().'">Login Now →</a></h2>';
}
return $output;
}
?>
我可以在此代码中更改什么以使其获取当前用户帖子的评论而不是他自己的评论?
Wordpress 上的 get_comments 函数有一大堆参数,您可以通过它传递。要根据 post 的作者而不是评论的 user_id 搜索评论,您需要 "post_author" 参数 -
https://codex.wordpress.org/Function_Reference/get_comments
因此,请考虑相应地更改您的 $args 数组,以便它查找 current_user 的 ID 为 post_author:
的匹配项 $args = array(
'post_author' => $current_user->ID,
'number' => $count, // how many comments to retrieve
'status' => 'approve'
);