web-dev-qa-db-ja.com

ホームページに「ブログの最新情報」を追加する

私は大きな問題を抱えていて、それを解決する手がかりがありません:)私は自分のホームページ(静的なホームページ、ブログの投稿ではない)に「モジュール」を追加したいです。それら。投稿はホームページにのみ表示され、他のすべてのページには表示されませんが、そのページに使用されるphpテンプレートはすべてのカスタムページと共有されます。

これは簡単なスケッチです。

Photo of a paper sketch

彼らのホームページでこれを美しくしているサイトはSEOmozです(しかし、私はそれほど多くの機能を必要としません、ブログ記事のタイトル、親指、抜粋&もっと読むためのリンク)

Screenshot from seomoz.org

これを行う簡単な方法はありますか? (プラグイン、どこからでもコピー/貼り付けできるコードはありますか?)それとも私に代わってこれを書くために誰かに支払うことはできますか?

2
Teekay

個人的には、手っ取り早いループにはget_posts()Codex ref )を使うのが好きです。

front-page.phpテンプレートファイルで、次のことを試してください。

<?php

// Create a variable to hold our custom Loop results
$frontpageposts = get_posts( array( 
     'numberposts' => 2 // only the 2 latest posts
) );

// Create output only if we have results
// Customize to suit your HTML markup
if ( $frontpageposts ) { 

     foreach ( $frontpageposts as $fppost ) { 
          // setup postdata, so we can use template tags
          setup_postdata($fppost);
          ?>

          <div <?php post_class(); ?>>
               <h2><a href="<php the_permalink(); ?>"><?php the_title(); ?></a></h2>
               <div class="post-entry">
                    <?php the_post_thumbnail(); ?>
                    <?php the_excerpt(); ?>
               </div>
          </div>

<?php }
} 
?>

繰り返しになりますが、必要に応じてHTMLマークアップを変更する必要があります。

1
Chip Bennett

素敵な手書き:)

これは、現在のページがホームであるかどうかをチェックすることと、最新の2つのブログ投稿を取得することによって簡単に行えます。

    <?php
        if ( is_home() ) {

            query_posts("posts_per_page=2");
        }

        // run the Loop

        if ( have_posts() ) : while ( have_posts() ) : the_post(); 

    ?>

<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>

<?php endwhile; ?>

<?php endif; ?>

これにより、ブログ投稿自体にリンクされているブログ投稿のタイトルが表示されます。あなたが必要とする情報を取得する他の関数(例えばthe_excerpt())を挿入してください。

より正確にするために、クエリにパラメータを追加することができます。たとえば、特定のカテゴリからの投稿のみを取得することができます。

0
Fred Rocha

これを行うためのさらに簡単な方法はあなたのテーマにpage-x.phpファイルを作ることです。 Xはあなたがホームページとして使うつもりのページのIDです。これはあなたがファイルを作成することができるのであなたがあなたがしなければならないFTPアクセスを持っていると仮定します。たとえば、page-2.phpはデフォルトのWordPressサンプルページに使用されるテンプレートになります。しかし、あなたがページ上にいるのでif(have_posts())を使うことはできません、そしてそれはあなたがオンにしているページのコンテンツを引き上げるでしょう。

WP_Queryを使うのが良いでしょう。

$news = new WP_Query( array(
                           'category_name'=>'news',
                           'posts_per_page' => 2
                           )
                    );

if ($news->have_posts()) while ($news->have_posts()) : the_post(); ?>

それからあなたのループを続けてください。詳細が必要な場合はお知らせください。私がいるところ

'category_name' => 'news'

'news'はあなたのカテゴリーのSLUGに変更されるべきです。

0
Chadster_BAM