0

そこで、ユーザー プロファイルを表示するための author.php ページを作成しました。

これは、上部の 'if ( have_posts() ) :' に依存しています。ここで - 参考までに - 私も持っています...

<?php /* Queue the first post, that way we know * what author we're dealing with (if that is the case). * * We reset this later so we can run the loop * properly with a call to rewind_posts(). */ the_post(); ?>

<?php /* Since we called the_post() above, we need to * rewind the loop back to the beginning that way * we can run the loop properly, in full. */ rewind_posts(); ?>

問題のユーザーが自分の名前の投稿を持っていれば問題ありません。しかし、投稿がない場合、コンテンツがあるはずのプロファイル ページが空白になります。

どうすればこれを克服できますか?

参考までに、完全な author.php は...

`

    <?php if ( have_posts() ) : ?>

        <?php
            /* Queue the first post, that way we know
             * what author we're dealing with (if that is the case).
             *
             * We reset this later so we can run the loop
             * properly with a call to rewind_posts().
             */
            the_post();
        ?>

        <?php
            /* Since we called the_post() above, we need to
             * rewind the loop back to the beginning that way
             * we can run the loop properly, in full.
             */
            rewind_posts();
        ?>

        <?php
        /* Get Extra User Fields*/
        $values_by_name = array(  // Assign defaults to all CIMY fields
            'TITLEJOB' => '',
            'TITLESECONDARY' => '',
            'COMPANY' => '',
        );
        $values = get_cimyFieldValue($author, false);
        if ($values) {
            foreach ($values as $value) {
                $values_by_name[$value['NAME']] = cimy_uef_sanitize_content($value['VALUE']);
            }
        }
        ?>

        <h1><?php the_author(); ?></h1>

        <?php
        if(!empty($values_by_name['COMPANY'])) {
            echo '<p>Company: '.$values_by_name['COMPANY'].'</p>';
        }

        if(!empty($values_by_name['TITLEJOB'])) {
            echo '<p>Title: '.$values_by_name['TITLEJOB'].'</p>';

            if(!empty($values_by_name['TITLESECONDARY'])) {
                echo '<p>Secondary: '.$values_by_name['TITLESECONDARY'].'</p>';
            }

        }
        ?>

        <?php

        ?>

        <p><?php echo get_avatar( get_the_author_meta( 'user_email' )); ?></p>
        <p>URL: <a href="<?php the_author_meta( 'user_url' ); ?>"><?php the_author_meta( 'user_url' ); ?></a></p>
        <p>Description: <?php echo nl2br(get_the_author_meta( 'description' )); ?></p>

        <h4>Posts: <?php the_author_posts(); ?></h4>
        <?php /* Start the Loop */ ?>
        <ul>
        <?php while ( have_posts() ) : the_post(); ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
        <?php endwhile; ?>
        </ul>

        <h4>Topics</h4>
        <ul>
            <li>Topic</li>
            <li>Topic</li>
            <li>Topic</li>
        </ul>

        <h4>Companies</h4>
        <ul>
            <li>Company</li>
            <li>Company</li>
            <li>Company</li>
        </ul>

    <?php endif; ?>

`

4

2 に答える 2

0

条件付きでラップされた完全なページ コンテンツがあります。

if ( have_posts() ) :

ユーザーに投稿がない場合、一番下にジャンプして何も表示しないのは当然のことです...

于 2013-09-11T15:55:25.277 に答える