Big Squareのindex phpを理解する。

超ど級の初心者なので、最初からしっかり改めて理解していきます。

僕の恥晒しにお付き合いください。

 

問題は、

・サイドバーの表示

・抜粋の文字数制限

 

index.php全体


<?php get_header(); ?>
<!-- #content -->
<div id="content">
<!-- start of .post -->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="detail">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div class="meta">
<div class="top"></div>
<p><?php _e('by'); ?> <strong><?php the_author(); ?></strong></p>
<p><?php _e('posted'); ?> <strong><?php echo get_the_date(); ?></strong></p>
<p><?php _e('category'); ?> <?php the_category(', '); ?></p>
<div class="bottom"></div>
</div>
<div class="post<?php if(!has_post_thumbnail()) echo " no-featured"; ?>">
<?php if(has_post_thumbnail()): ?>
<div class="featured">
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(700,9999)); ?></a>
<div class="credit"></div>
</div>
<?php endif; ?>
<div class="excerpt">
<?php the_excerpt(); ?>
</div>
<?php
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts($args);
if(count($attachments) > 1):
?>
<div class="pic-excerpt">
<div class="top"></div>
<div class="outer">
<h3><?php _e('Pictures In This Set'); ?></h3>
<div class="pic">
<?php the_image_excerpt(wpop_get_option('pic_excerpt')); ?>
</div>
</div>
<div class="bottom"></div>
</div> <!-- pic-excerpt -->
<?php endif; ?>
</div>
</div>
<div class="devider"><a href="#header"><?php _e('Top'); ?></a></div>
<?php endwhile;?>
<div class="paging">
<div class="alignleft"><?php next_posts_link('« Older Entries', 0); ?></div>
<div class="alignright"><?php previous_posts_link('Newer Entries »', 0); ?></div>
<div class="clear"></div>
</div>
<?php endif;?>
<!-- end of .post -->
<!--sidebar-->
<div id="sidebar">
<?php dynamic_sidebar(); ?>
</div>
<!--end sidebar-->
<?php get_footer(); ?>

全体像は、こんな感じ。

上から順に。

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

これは、「ループ」と呼ばれるWordpressのメイン処理を担います。

  1. はじめに have_posts() 関数を使って1つでも投稿が読み込まれたかどうかを確認します
  2. 投稿があった場合、 PHP の _”while” ループが開始され、カッコ内の条件が真である限り実行されます。したがって、 have_posts() 関数が真を返す限り、「ループ」がまわりつづけます。
  3. have_posts() 関数は単純に投稿リストの次の投稿を確認します。もしまだあれば真を返しますし、それ以上次がなければ偽を返します。

(参照URL:http://wpdocs.sourceforge.jp/The_Loop_in_Action)

 

・サムネイル表示

<div class="post<?php if(!has_post_thumbnail()) echo " no-featured"; ?>">
<?php if(has_post_thumbnail()): ?>

!(not)サムネイル、no-featuredだぜ。

サムネイルがあるなら、出せ。

 

こんなプログラミングしてなくてもわかるわ。

 

・サムネイルのリサイズ

<?php the_post_thumbnail(array(700,9999)); ?>

幅は700で合わせ、縦は比率に応じて切り刻む。って処理ですね。

これ色々問題あるけど、ひとまず保留。

サムネイルの切り取りに関しては、

以下を参照。

(参考URL:http://wp.tekapo.com/2010/01/31/new-in-wordpress-2-9-post-thumbnail-images/)

 

<?php the_excerpt(); ?>

これは、本文を抜粋するテンプレートタグですね多分。

デフォルトの状態だと55語を表示するのだが、なんと日本語は読み込まれないため、本文のほとんどが表示されてしまう(笑)

ということで、

WP Multibyte Patch

というプラグインを入れましょう。

これで多分大丈夫。

未検証です。

表示文字数も制限できるみたい。

 

次、

<?php
$args = array(
'post_type' => 'attachment',
'numberposts' => -1,
'post_status' => null,
'post_parent' => $post->ID
);
$attachments = get_posts($args);
if(count($attachments) > 1):
?>

左側に’post_type’とかなってるのは、wordpressのパラメーター。

post_type : ‘post’、’page’、’attachment’、’any’などの投稿情報タイプ(省略時は’post’:投稿ページ)

nuberposts : 取得件数(省略時は5)

post_status : 投稿ステータスを示す’auto-draft’、’draft’、’inherit’、’private’、’publish’、’any’など(省略時は、post_typeが’attachment’ならば’inherit’、以外は’publish’)????

post_parent : 親の投稿ID(省略時は0)

(参照URL:http://elearn.jp/wpman/function/get_posts.html)

*パラメータnumberpostsに-1を指定した場合は条件にマッチした全件を取得できる。

 

どのような意味があるかあまりわかりませんw

 

About The Author

kazuya.zbz

美味しいご飯と、写真を撮るのが大好きな26歳。福井→京都→US→Rettyという会社でディレクターをしたのち、現在は(一応)地球一周中のKazuya Yabu です。

Close