comment
に投稿またはpost
できるプロフィールのページがあります。問題は、このユーザーが投稿ではなくコメントを選択した場合、投稿を送信するまでauthor page
を取得しないことです。とにかく著者ページを表示する方法はありますか?著者ページにコメントを表示する機能がありますが、投稿がないため、表示されません...
誰かが私を助けてくれることを願っています。
PS:私はすでにいくつかのプラグインを試しましたが、それらはうまくいきませんでした。
参考までに、これはWordpressのデフォルトの動作であり、「author.php
」ループを持つデフォルトのif have posts
テンプレートを使用しています。そうでない場合は、loop-no-posts
ループです。投稿がないため、著者ページは作成されません。それがポイントです。
編集:私のコード:
<?php if (have_posts()) : ?>
<ul><?php
global $wpdb;
$user_id = $post->post_author;
$where = 'WHERE comment_approved = 1 AND user_id = ' . $user_id ;
$user = get_userdata($user_id);
?>
<?php while (have_posts()) : the_post(); ?>
<?php responsive_entry_before(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<div class="post-entry"><blockquote>
<?php if ( has_post_thumbnail()) : ?>
<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>" >
</a>
<?php endif; ?>
<?php the_excerpt(); ?>
</article>
<?php responsive_entry_after(); ?>
<?php
endwhile;
/* get_template_part( 'loop-nav' ); */
else :
get_template_part( 'loop-no-posts' );
endif;
?>
<?php
$args = array(
'user_id' => $user->ID,
'number' => 10, // how many comments to retrieve
'status' => 'approve'
);
$comments = get_comments( $args );
if ( $comments )
{
foreach ( $comments as $c )
{
$output.= '<a href="'.get_comment_link().'">';
$output.= get_the_title();
$output.= '</a>';
}
echo $output;
} else { echo "bla";}?>
</div>
<?php
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
?>
<?php if ( have_posts() ) ?>
<h2>Posts by <?php echo $curauth->nickname; ?>:</h2>
<ul>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>">
<?php the_title(); ?></a>,
<?php the_time('d M Y'); ?> in <?php the_category('&');?>
</li>
<?php endwhile; else: ?>
<p><?php _e('No posts by this author.'); ?></p>
<?php endif; ?>
</ul>
<?php
$args = array(
'user_id' => $curauth->ID,
'number' => 10, // how many comments to retrieve
'status' => 'approve'
);
$comments = get_comments( $args );
if ( $comments )
{
$output.= "<ul>";
foreach ( $comments as $c )
{
$output.= '<li>';
$output.= '<a href="'.get_comment_link( $c->comment_ID ).'">';
$output.= get_the_title($c->comment_post_ID);
$output.= '</a>';
$output.= "</li>\n";
}
$output.= '</ul>';
echo $output;
} else {
echo "bla";
}
?>
編集:OPのコードを追加