// 固定ページスマホ用中身 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' ) ; } }
<?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 ?>
<?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
参考サイト
配列を覚えていけばさらに細かい条件が指定できそう。
いかしてる。
カスタムフィールドテンプレートの設定
[Flag]
type = radio
value = open_s # end_s
valueLabel = セミナー開催中 # セミナー終了
default = open_s
label = セミナー開催中フラグ
画像の出力方法
<?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; ?>
<?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などを加えたりすることも可能。