web-dev-qa-db-ja.com

ユーザーに投稿がない場合の著者ページの表示

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>
1
Johan
<?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のコードを追加

0
Vigs