Top Menu
Pocket

 

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 です。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This blog is kept spam free by WP-SpamFree.

Close