search.phpでタグ・タームを検索結果にその1

<?php //タグ・ターム
 
//検索キーワードを取得
$keys = get_search_query();
//スペースが全角の場合、半角に変換
$keys = str_replace(' ', ' ', $keys);
//SQLインジェクション用
$keys = mysql_real_escape_string($keys);
//検索キーワードを配列に変換
$keys_array = explode(' ', $keys);
 
//キーワードの数だけWHERE節を作成する
$sql_where = '';
foreach ($keys_array as $key => $value) {
  if(empty($sql_where)){
    $pre_str = 'WHERE ';
  }else{
    $pre_str = 'AND ';
  }
  $sql_where .= $pre_str . "(0<LOCATE('{$value}',posts.post_title) OR 0<LOCATE('{$value}',t_terms.name) OR 0<LOCATE('{$value}',t_terms.slug)) ";
}
 
//クエリを実行  
$objResult = $wpdb->get_results(
  $wpdb->prepare(
    "SELECT * FROM {$wpdb->posts} posts LEFT JOIN {$wpdb->term_relationships} t_rel  ON posts.ID = t_rel.object_id
    LEFT JOIN {$wpdb->term_taxonomy} t_term_tx ON t_rel.term_taxonomy_id = t_term_tx.term_taxonomy_id  
    LEFT JOIN {$wpdb->terms} t_terms ON t_term_tx.term_id = t_terms.term_id 
    "
    . $sql_where
));
 
 
//検索結果が0でなければ、ヒットした投稿のIDを指定してquery_postsで抽出する。
 
if (!empty($objResult)){
   
  $id_array = '';
  $i=0;
  foreach ($objResult as $key => $value) {
    $id_array[$i] = $value->ID;
    $i++;
  }
   
  $arg = array(
    'post__in'=>$id_array,
    'post_type'=>'performer' //対象のカスタム投稿タイプ
  );
   
  $posts = query_posts( $arg );
 
}
 
//検索結果が0なら、query_postsを行わない。その場合、標準の検索機能が自動的に動作する。
//そのため、何もヒットしなければ、標準の「ヒットしませんでした」画面も自動的に表示される。
 
?>

以下ループ

http://masaroku.com/?p=788 参考

カスタムフィールドの値によって画像を表示

「りんご」にチェックが入った時は「りんご」のイラストを
「みかん」にチェックが入った時は「みかん」のイラストを
「ばなな」と「ぶどう」にチェックが入った時は両方のイラスト

<?php
$fruits = (array)post_custom('果物');
foreach ($fruits as $fruit) {
  switch ($fruit) {
    case 'りんご':
      echo "<img src='apple.png' />\n";
      break;
    case 'みかん':
      echo "<img src='orange.png' />\n";
      break;
    case 'ばなな':
      echo "<img src='banana.png' />\n";
      break;
    case 'ぶどう':
      echo "<img src='grape.png' />\n";
      break;
  }
}
?>

http://memo.dogmap.jp/2011/07/13/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E5%80%A4%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E7%94%BB%E5%83%8F%E3%82%92%E8%A1%A8%E7%A4%BA/

Custom Field GUI Utility 複数チェックボックス

[italy]
fieldname = 好きな選手を選択してください
type = multi_checkbox
class = italy
value = バッジョ#ピルロ#デルピエーロ
default = バッジョ
sample = 好きな選手を選択してください
【コード】
<?php echo post_custom('italy'); ?>

【出力結果】
バッジョ,ピルロ,デルピエーロ
【コード】
<?php echo str_replace(',', '<br />', post_custom('italy')); ?>

【出力結果】
バッジョ<br />ピルロ<br />デルピエーロ
【コード】
<ul>
<?php
    $arry_italy = explode(',', post_custom('italy'));
    foreach ($arry_italy as $italy) {
        $out .= '<li>' . $italy . '</li>';
    }
    echo $out;
?>
</ul>

【出力結果】
<ul>
    <li>バッジョ</li>
    <li>ピルロ</li>
    <li>デルピエーロ</li>
</ul>

http://www.tinybeans.net/blog/2010/04/13-053516.html

ページプラグイン wp_page_number

<!-----------------------ページプラグイン--------------------------------->
<div style="width:670px;">
<?php if(function_exists('wp_page_numbers')) : wp_page_numbers(); endif; ?>
</div>
/*-----------------------ページプラグインcss r-advance---------------------------------*/
#wp_page_numbers {
	background-color: #F7E9CF;
}
#wp_page_numbers li.page_info{
	padding: 10px!important;
	font-size: 14px!important;
	/*margin-left: 20px!important;*/
}

#wp_page_numbers a{
	padding: 10px!important;
		font-size: 14px!important;
	}
	
#wp_page_numbers li.active_page a{
		border-color: #666!important;	

}

#wp_page_numbers li a:hover {
	border-color: #E7AC80!important;	
	}
	
#wp_page_numbers ul, #wp_page_numbers li, #wp_page_numbers a {
			background-color: #F7E9CF;
		}
		
#wp_page_numbers a,#wp_page_numbers li.page_info {
}
/*-----------------------ページプラグインcss パフォ---------------------------------*/
#wp_page_numbers {
    background-color: #FFFFFF;
}
#wp_page_numbers li.page_info{
    padding: 10px!important;
    font-size: 14px!important;
    /*margin-left: 20px!important;*/
}
 
#wp_page_numbers a{
    padding: 10px!important;
        font-size: 14px!important;
    }
 
#wp_page_numbers li a:hover {
    border-color: #FF5D00!important;
    }
     
#wp_page_numbers li.active_page a{
    border-color: #FF5D01!important;
    background-color: #FF5D00;
    color: #FFF;
}
#wp_page_numbers li.active_page a:hover {
    color: #FFF;
}
     
#wp_page_numbers ul, #wp_page_numbers li, #wp_page_numbers a {
    background-color: #FFFFFF;
        }
         
#wp_page_numbers a,#wp_page_numbers li.page_info {
}
/*-----------------------///ページプラグインcss パフォ---------------------------------*/

カテゴリ wp_list_categories

<?php wp_list_categories(array(
'title_li' => '',//最初に何も入れない 入れると<li class="categories">入れた文字<ul>リスト一覧</ul></li>となる
'taxonomy' => 'category', //カテゴリ
'hide_empty' => 0, //記事がなくとも表示
'orderby' => 'order',//順番は指定します
'depth' => 1//子は表示しません。
)); ?>

http://wpdocs.sourceforge.jp/テンプレートタグ/wp_list_categories

分岐基本

<?php if(is_home()): //ホームだったら?>

<?php elseif(is_tax('genre')): //タクソノミーだったら?>

<?php elseif(is_singular( 'performer' ) )://カスタムポストのシングルページだったら?>

<?php elseif (is_archive()): //アーカイブだったら?>
<?php if (( get_post_type() == 'event_report')): //event_reportのポストタイプだったら?>
<?php endif; ?>

<?php else: //それ以外だったら?>

<?php endif; ?>

ディスプリクションにカスタムフィールドの文字を指定数だけ入れる ソースを改行させない

<META name="description" content="
<?php echo mb_substr( str_replace(array("\r\n","\r","\n"),'',strip_tags(get_post_meta($post->ID,"プロフィール",true))), 0, 120); 
//ソースを改行させない カスタムフィールドの文字を指定数だけ入れる?>"> 

ディスプリクションのキーワードにタグ名とターム名を入れる

<META name="keywords" content="<?php //ターム名リンク無しで取得
$terms = wp_get_post_terms( $post->ID, 'genre' ); //分類で設定した名称
$names = array();
     echo ""; //前の文字
     foreach ( $terms as $term ) {
          $names[] = $term->name;
     }
     echo implode( ',', $names ); //区切り文字を指定
?><?php
$terms = wp_get_post_terms( $post->ID, 'chiiki2' ); //分類で設定した名称
$names = array();
     echo ","; //前の文字
     foreach ( $terms as $term ) {
          $names[] = $term->name;
     }
     echo implode( ',', $names ); //区切り文字を指定
?><?php //タグ名リンク無しで取得
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo $tag->name . ',';
}
}
?>">