私はindex.phpに以下のコードを持っています、そしてループの上に著者の情報を表示するためにこのコード行(下記)をインクルードしたいです。
<?php include 'author-top.php'; ?><!--author-->
ここに示すように、ヘッダーの直後に表示したいです。
<?php get_header(); ?>
<!--This is where I want my author div to display-->
<?php include 'author-top.php'; ?><!--author-->
<div id="primary" class="content-area">
<div id="content" class="site-content-home" role="main">
<?php if ( is_home() && ! is_paged() ) : ?>
<h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>
<?php endif; ?>
<?php if ( have_posts() ) : ?>
<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'home' );
?>
<?php endwhile; ?>
<?php spun_content_nav( 'nav-below' ); ?>
<?php elseif ( current_user_can( 'edit_posts' ) ) : ?>
<?php get_template_part( 'no-results', 'index' ); ?>
<?php endif; ?>
</div><!-- #content .site-content -->
</div><!-- #primary .content-area -->
これは私が得るものです: http://gyazo.com/4154248fa37c84f9cb8f52871f186723.png
私がindex.phpコードの一番下のどこかで同じ 'php include'を使おうとすると、すべてうまくいくようです。問題はそれが小さいスクリーンの上に表示されるように私が上にそれを必要とすることです。
私が悪いことは何ですか?またはそれはwordpressがそこに 'php includes'を使用することを許可していないということで、もしそうならそうではありません。
これはauthor-top.phpの中身です
<!-- get author bio **RAUL -->
<!-- This is the author info displayed at the top of each page -->
<div id="author-bio">
<div class="author-image"><?php echo get_avatar( get_the_author_email(), '80' ); ?></div>
<div class="author-txt">
<h2 class="author-name" id="clickme"><?php the_author(); ?></h2>
<p class="toggle author-description"><?php the_author_description(); ?></br>
<a href="http://www.linkedin.com/in/raulmvicente"><img class="author-social" src="http://www.webleria.com/wp-content/themes/spun/images/linkedin_circle_color.png"></a>
<a href="http://www.Twitter.com/raulmvicente"><img class="author-social" src="http://www.webleria.com/wp-content/themes/spun/images/Twitter_circle_color.png"></a>
<a href="https://plus.google.com/116575236589076788314?rel=author"><img class="author-social" src="http://www.webleria.com/wp-content/themes/spun/images/google_circle_color.png"></a></p>
</div>
</div>
<script>
$('#clickme').click(function() { $( '.toggle' ).animate({ "height": "toggle", "opacity": "toggle" }, "slow" )});
</script>
私はここで私自身の質問に答えます。
ユーザー情報が表示されなかった理由は、ループの外側で使用されるときにphpタグが作成者IDを必要とするためです。
例えば次のタグ:
<?php the_author(); ?>
このようにする必要があります:
<?php the_author_meta('display_name', 1); ?>
これ はここではかなりよく説明されています。
今すぐコードが正常に動作します。
The Loopの外で使用する場合は、ユーザーIDを指定する必要があります。
Author-top.phpでこれを試してください
<?php get_the_author_meta( $field, $userID ); ?>
ユーザーIDを含める必要があります。
出典 http://codex.wordpress.org/Function_Reference/get_the_author_meta
単一のページにいる場合は、単にpost_author
ifを使用できます。 the_author_meta('display_name', $post->post_author );
と書くことができます。そうすれば、idをハードコーディングする必要がなくなります。