投稿にカスタムフィールドを作りのデータを保存

// 固定ページスマホ用中身
function nskw_meta_box_inside() {
	$smart_text_value = get_post_meta( $_GET['post'], 'smart_text' );
	$smart_text = $smart_text_value[0];
	?>
		<div><textarea id="smart_text" name="smart_text"><?php if($smart_text) echo $smart_text;?></textarea></div>
	<?php
}

// メタボックスを追加する関数
function nskw_meta_box_output() {
	add_meta_box('nskw_meta_post_page', 'スマートフォンコード', 'nskw_meta_box_inside', 'page', 'normal', 'core' );
}

// フックする
add_action('admin_menu', 'nskw_meta_box_output' );

/*更新ボタンが押されたときに実行*/
add_action('save_post', 'save_custom_field_postdata');

/* 設定したカスタムフィールドの値をDBに書き込む記述 */
function save_custom_field_postdata( $post_id ) {
	$mydata = $_POST['smart_text'];
	if ( "" == get_post_meta( $post_id, 'smart_text' )) {
	/* smart_textというキーでデータが保存されていなかった場合、新しく保存 */
	add_post_meta( $post_id, 'smart_text', $mydata, true ) ;
	} else if ( $mydata != get_post_meta( $post_id, 'smart_text' )) {
	/* smart_textというキーのデータと、現在のデータが不一致の場合、更新 */
	update_post_meta( $post_id, 'smart_text', $mydata ) ;
	} else if ( "" == $mydata ) {
	/* 現在のデータが無い場合、page_layoutというキーの値を削除 */
	delete_post_meta( $post_id, 'smart_text' ) ;
	}
}

画像をforで表示[php]

<?php
if(get_post_meta($post->ID,img1,TRUE)||get_post_meta($post->ID,img1,TRUE)||get_post_meta($post->ID,img1,TRUE)){
 echo "<table id='thum_img'><tr>";
for ($i = 1; $i <= 3; $i++) {
$img = 'img'.$i;
$title = 'title'.$i;
$img_thm = wp_get_attachment_image(post_custom($img),'thumbnail');
if(get_post_meta($post->ID,$img,TRUE)){
echo "<td class='".$img."'>";
echo $img_thm;
echo '<p>'.get_post_meta($post->ID,$title,TRUE).'</p>';
echo "</td>";
}
}
echo "</tr></table>";
}//fast if end
?>

wp_get_attachment_image

<?php
$args = array(
'title' => 'くまくま',
'alt' => 'おると'
);
echo wp_get_attachment_image( $post->ID, 'post-thumbnail', false, $args );
?>

$argsのところで
添付画像の属性を文字列または連想配列で指定(省略時は”)。

チェックボックスを利用した記事分類[複数条件]

<?php 
$paged = get_query_var('paged') ? get_query_var('paged') : 1;
parse_str( $query_string, $args );
$args = array(
            'post_status' => 'publish',
            'post_type' => 'any',
            'meta_query' => array(
array('key'=>'shop_g','value'=>array( '値A','値B','値C' ),'compare'=>'IN')
            ),
	'paged' => get_query_var('paged')
        );
query_posts( $args );
?> 
                <?php
                get_template_part( 'loop', 'index' );
                ?>
<?php wp_reset_query();?>

値A,値B,値Cのいずれかに投稿の[shop_g]の値が等しい記事の出力を行う。

これができたときはテンション上がった。

http://elearn.jp/wpman/column/c20110915_01.html
参考サイト

配列を覚えていけばさらに細かい条件が指定できそう。
いかしてる。

カスタムフィールドテンプレートの基本的な使い方

画像の出力方法

<?php echo wp_get_attachment_image(post_custom('フィールド名'),'表示クラス');?>

<?php echo wp_get_attachment_image(post_custom('face'),'home_face');?>

funcitons.php
に表示クラスの追加を行う

add_image_size('home_face',100);

登録した画像やPDFなどのファイルパスの出力

<?php echo wp_get_attachment_url(post_custom('Photo_01')); ?>

チェックボタンなどを入れた場合の例

<?php if ( get_post_meta($post->ID,'Flag2',TRUE) ): ?>
	<p><a href="<?php the_permalink() ?>#keka">結果報告はこちら</a></p>
<?php endif; ?>

上記の例だとFlag2にチェックがはいっていればpタグで囲まれている文章が表示される。

おまけ
特定のmeta_valueの文字列による判定

<?php if ( 'end_s' == get_post_meta($post->ID,'Flag',TRUE) ): ?>
<li class="end"><span>このセミナーは終了しています。</span></li>
<?php endif; ?>

こういうURLの出し方もある

<?php if ( get_post_meta($post->ID,'PDF01',TRUE) ): ?>
<p class="file_btn"><a href="<?php
$files = get_post_meta($post->ID, PDF01, false);
foreach($files as $file){
	$file = wp_get_attachment_url($file);
	echo $file;
}
?>" target="_blank">PDFはこちら</a></p>
<?php endif; ?>

for文を使ったカスタムフィールドの出力サンプル[for]

<?php if ( get_post_meta($post->ID,'file1',TRUE) ): ?>
<ul id="photo_list" class="clearfix">
<?php 
for ($i = 1; $i <= 20; $i++) {
$file = 'file' . $i;
$caption = 'caption' .$i;
if ( get_post_meta($post->ID,$file,TRUE) ){
echo "<li>";
echo  wp_get_attachment_image(post_custom($file),'fine_photo');
echo "<p>";
echo get_post_meta($post->ID, $caption, true);
echo "</p>";
echo "</li>";
} //endif
} //endfor
?>
</ul>
<?php endif; ?>

カスタムフィールドテンプレートにて通し番号で項目名を設定するのが重要。

if ( $i % 4 == 0 ) echo '出力したいもの';

レイアウトによっては特定倍数のときにHTMLなどを加えたりすることも可能。