<?php if(is_tag()): ?> <?php endif; ?>
カテゴリー: Code コード
カテゴリーアーカイブだったら
<?php if(is_category()): ?>
<?php endif; ?>
<?php if(is_category('9')): ?>
カテゴリーIDが"9"の記事を表示します。
<?php elseif(is_category('Stinky Cheeses')): ?>
カテゴリーの名前が"Stinky Cheeses"の記事を表示します。
<?php elseif(is_category('blue-cheese')): ?>
カテゴリースラッグが"blue-cheese"の記事を表示します。
<?php elseif(in_category( array( 1,2,3 ) )): ?>
カテゴリーIDが "1, 2, 3 "の記事を表示します。
<?php elseif(!in_category( array( 4,5,6 ) )): ?>
カテゴリーIDが" 4, 5, 6 "意外の記事を表示します。
<?php endif; ?>
リンクなし あり のカテゴリ名表示 未検証
リンクなしのカテゴリ名表示方法。
<?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?>
リンクありは
<?php the_category(); ?>
編集中 絞り込み検索
<form action="<?php echo home_url(); ?>" method="get">
<ul>
<li><?php wp_dropdown_categories(array(
'taxonomy' => 'chiiki2',
'show_option_all' => 'すべてのカテゴリーを含む'
)); ?></li>
<li><select name="tag">
<option value="">タグを選択</option>
<?php
$tags = get_tags();
foreach ($tags as $tag): ?>
<option value="<?php echo esc_attr($tag->slug); ?>"><?php echo esc_html($tag->name); ?></option>
<?php endforeach; ?>
</select></li>
<li> キーワード:<input type="text" value="" name="s" /></li>
</ul>
<input type="submit" value="この内容で検索!" />
</form>
http://mypacecreator.net/blog/archives/1807
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_dropdown_categories
↑よりさらに詳しく
階層を維持
'hierarchical' => '1',
検索結果だったら
<?php if(is_search()): ?> <?php endif; ?>
search.phpでユーザー名とか、タグ名・カテゴリ名も検索対象その2
https://gist.github.com/wokamoto/3486944
ファンンクションにこれを追加
function custom_search($search, $wp_query) {
global $wpdb;
//サーチページ以外だったら終了
if (!$wp_query->is_search)
return $search;
if (!isset($wp_query->query_vars))
return $search;
// ユーザー名とか、タグ名・カテゴリ名も検索対象に
$search_words = explode(' ', isset($wp_query->query_vars['s']) ? $wp_query->query_vars['s'] : '');
if ( count($search_words) > 0 ) {
$search = '';
foreach ( $search_words as $word ) {
if ( !empty($word) ) {
$search_word = $wpdb->escape("%{$word}%");
$search .= " AND (
{$wpdb->posts}.post_title LIKE '{$search_word}'
OR {$wpdb->posts}.post_content LIKE '{$search_word}'
OR {$wpdb->posts}.post_author IN (
SELECT distinct ID
FROM {$wpdb->users}
WHERE display_name LIKE '{$search_word}'
)
OR {$wpdb->posts}.ID IN (
SELECT distinct r.object_id
FROM {$wpdb->term_relationships} AS r
INNER JOIN {$wpdb->term_taxonomy} AS tt ON r.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN {$wpdb->terms} AS t ON tt.term_id = t.term_id
WHERE t.name LIKE '{$search_word}'
OR t.slug LIKE '{$search_word}'
OR tt.description LIKE '{$search_word}'
)
) ";
}
}
}
return $search;
}
add_filter('posts_search','custom_search', 10, 2);
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 パフォ---------------------------------*/
記事を編集(記事から ログイン時のみ表示)
ログインしていれば 記事に編集が表示
<?php edit_post_link(); ?>
<?php edit_post_link('link', 'before', 'after'); ?>
コード記述例: <?php edit_post_link('この記事を編集', '<p>', '</p>'); ?>
出力例: <p><a href="#">この記事を編集</a></p>
タクソノミー wp_list_categories
<?php wp_list_categories('title_li=&depth=1&taxonomy=chiiki2&hide_empty=0'); ?>
タクソノミーchiiki2のタームを出力
http://wpdocs.sourceforge.jp/テンプレートタグ/wp_list_categories
カテゴリ 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; ?>
ホームだったら
<?php if(is_home()): ?> <?php endif; ?>
カスタムポストのシングルページだったら
<?php if(is_singular( 'performer' ) )://パフォーマー個人?> is_singular( array( 'newspaper', 'book' ) ) //複数
アーカイブでこのポストタイプだったら
<?php if (is_archive()): //アーカイブだったら?> <?php if (( get_post_type() == 'event_report')): //event_reportのポストタイプだったら?> <?php endif; ?> <?php endif; ?>
ポストタイプだったら
<?php if (( get_post_type() == 'event_report')): //event_reportのポストタイプだったら?> <?php endif; ?>
タクソノミーだったら
<?php if(is_tax('chiiki')): //イベントレポート地域?>
<?php endif; ?>
アーカイブだったら
<?php if (is_archive()): //アーカイブだったら?> <?php endif; ?>