1

ブログ投稿の作成者のリストを取得したいので、local.xml にブロックを設定し、次のことを試みています。

<wordpress_homepage>
    <reference name="root">
        <block type="wordpress/post_list" name="wordpress_author" template="wordpress/homepage/author/view.phtml">
            <block type="wordpress/post_list" name="wordpress_post_list" template="wordpress/post/list.phtml">
                <block type="wordpress/post_list_pager" name="wordpress_post_list_pager"/>
            </block>
        </block>
    </reference>
</wordpress_homepage>

私のxmlブロックではなく、私のview.phtmlファイルでは:

<?php $posts = $this->getPosts(); ?>

null を返します。しかし、他のページでは投稿を取得できます。何か案は?

4

1 に答える 1

0

指定した XML コードは、特定の作成者のほぼすべての投稿を表示します (ただし、ホモページをロードするときに Author モデルがレジストリで定義されていないため、投稿は返されません) が、定義した最初のブロックが間違っているため機能しません。ブロック タイプ (wordpress/author_view である必要があります)。

あなたの説明に基づくと、特定の作成者によるブログ投稿のリストではなく、サイト上のすべての作成者を実際にリストしたいようです。これを行うには、次のコードが役立ちます。

<?php $authors = Mage::getResourceModel('wordpress/user_collection')->load() ?>
<?php if (count($authors) > 0): ?>
  <ul>
    <?php foreach($authors as $author): ?>
      <li>
        <a href="<?php echo $author->getUrl() ?>">
          <?php echo $this->escapeHtml($author->getDisplayName()) ?>
        </a>
      </li>
    <?php endforeach; ?>
  </ul>
<?php endif; ?>

このコードは、すべてのユーザーをロードし、各ユーザー ページへのリンクを含むリストを書き出します。

于 2015-03-07T09:15:42.833 に答える