WordPressのキーワード・タクソノミー(セレクト・チェックボックス)の複合検索

WordPressのキーワード・タクソノミー(セレクト・チェックボックス)の複合検索メモ


<form method="get" action="<?php echo esc_url(home_url('/'));?>" name="worksearch">
<input type="text" name="s" id="s" value="<?php echo get_search_query(); ?>" placeholder="キーワード">
<?php
//カスタム投稿タイプの一覧を取得
$args = array(
'public' => true,
'_builtin' => false
);
$post_types = get_post_types( $args );
?>

<!--
<?php if(count($post_types) != 0):?>
<select name="post_type">
<?php foreach ( $post_types as $post_type ) : ?>
<option value="<?php echo $post_type; ?>"><?php echo esc_html( get_post_type_object( $post_type )->label ); ?></option>
<?php endforeach;?>
</select>
<?php endif; ?>
-->

<select name="post_type" style="display: none;">
<option value="work" selected>求人情報</option>
</select>

<?php
$selected = get_query_var("work_area",0);
$args = array(
'show_option_all' => '勤務地を選ぶ',
'taxonomy' => 'work_area',
'name' => 'work_area',
'value_field' => 'slug',
'hide_empty' => false,
'hierarchical'=> true,
'selected' => $selected
);
wp_dropdown_categories($args);
?>

<?php
$selected = get_query_var("work_occupation",0);
$args = array(
'show_option_all' => '職種を選ぶ',
'taxonomy' => 'work_occupation',
'name' => 'work_occupation',
'value_field' => 'slug',
'hide_empty' => false,
'selected' => $selected
);
wp_dropdown_categories($args);
?>

<?php
$selected = get_query_var("work_status",0);
$args = array(
'show_option_all' => '雇用形態を選ぶ',
'taxonomy' => 'work_status',
'name' => 'work_status',
'value_field' => 'slug',
'hide_empty' => false,
'selected' => $selected
);
wp_dropdown_categories($args);
?>

<?php
/*
$selected = get_query_var("work_commitment",0);
$args = array(
'descendants_and_self' => 0,
'selected_cats' => false,
'popular_cats' => false,
'walker' => null,
'taxonomy' => 'work_commitment',
'checked_ontop' => true
);
wp_terms_checklist($args);
*/
?>

<ul>
<?php
$terms = get_terms('work_commitment','hide_empty=0');
foreach ( $terms as $term ) :
?>
<li>
<label>
<input type="checkbox" name="work_commitment" value="<?php echo $term->slug; ?>" id="<?php echo $term->term_id;; ?>"><?php echo $term->name; ?>
</label>
</li>
<?php endforeach; ?>
</ul>

<input type="submit" value="検索">
</form>

WordPressの記事内容を文字数を制限して表示

WordPressで記事の内容を表示させたい時は
記事内容表示テンプレートタグ

<?php the_content(); ?>

で表示されます。 これを文字数を制限するには

<?php echo mb_substr(strip_tags($post-> post_content),0,200); ?>

更に制限した記事の後ろに ・・・を追加

<?php echo mb_substr(strip_tags($post-> post_content),0,200).'...'; ?>

WordPressでカスタムタクソノミー一覧を表示する

WordPressでカスタムタクソノミー一覧を表示する場合は、
以下のコードを使用すると良い。

<?php
$args = array(
	'numberposts' => -1,			//表示(取得)する記事の数 ※-1で全件表示
	'post_type' => 'shop',		//投稿タイプの指定
	'taxonomy' => 'area',			//タクソノミー名を指定
	'term' => 'kyubo',				//タームを指定
	'orderby' => 'date',			//ソート対象を指定
	'order' => 'DESC'					//ソート順を示すASCかDESC(省略時はDESC)
);
$customPosts = get_posts($args);
if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );
?>
<div><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
<?php endforeach; ?>
<?php else : //記事が無い場合 ?>
<div><p>記事はまだありません。</p></div>
<?php
endif;
wp_reset_postdata(); //クエリのリセット
?>

【WordPress】アーカイブページで現在のカテゴリ・タグの情報を簡単に取得する方法

1. 以下の関数をそのままfunctions.php内の最下部あたりに貼り付けます。

/*
	アーカイブページで現在のカテゴリー・タグ・タームを取得する
*/
function get_current_term(){

	$id;
	$tax_slug;

	if(is_category()){
		$tax_slug = "category";
		$id = get_query_var('cat');	
	}else if(is_tag()){
		$tax_slug = "post_tag";
		$id = get_query_var('tag_id');	
	}else if(is_tax()){
		$tax_slug = get_query_var('taxonomy');	
		$term_slug = get_query_var('term');	
		$term = get_term_by("slug",$term_slug,$tax_slug);
		$id = $term->term_id;
	}

	return get_term($id,$tax_slug);
}

2. あとはアーカイブ(category.php、tag.phpなど)テンプレートの任意の場所に以下のソースコードを記述するだけ!

//カテゴリ・タグ・カスタムタクソノミー オブジェクトを取得
$term = get_current_term(); 

//以下は必要に応じて記述
echo $term->name; //名前を表示
echo $term->slug; //スラッグを表示
echo $term->description; //説明文を表示
echo $term->count; //投稿数を表示

地味な関数ですが今まではアーカイブの種類ごとに記述を変更する必要がありましたが、この関数で各アーカイブ共通の記述で情報が取得できるようになるので重宝するかと思います。
※この関数は投稿ページ(single.php)では使用できません。投稿ページではget_the_category()やget_term()をお使いください。

WordPressに管理画面固定ページ一覧でスラッグを表示させる方法

WordPressに管理画面固定ページ一覧でスラッグを表示させる方法は以下をfunctions.phpに記述する。

function add_page_columns_name($columns) {
 $columns['slug'] = "スラッグ";
 return $columns;
}
function add_page_column($column_name, $post_id) {
 if( $column_name == 'slug' ) {
 $post = get_post($post_id);
 $slug = $post->post_name;
 echo attribute_escape($slug);
 }
}
add_filter( 'manage_pages_columns', 'add_page_columns_name');
add_action( 'manage_pages_custom_column', 'add_page_column', 10, 2);

single.phpでthe_content()が表示されない解決法

オリジナルテーマを作成時に single.php で the_content() が反映されない。
は表示されるのに、が表示されないのです。

その時は、the_content()のかわりに

<?php
$this_content= wpautop($post->post_content);
echo $this_content;
?>

と記載

wordpressでAJAXで次ページを読み込む「jQuery.autopager」

まずは、jQuery.autopagerをダウンロード。

基本的には

<script type="text/JavaScript">
$(function(){
	$.autopager({
		content	: '.content',	// ロードしたいコンテンツ部分のセレクタ 
		link	: '#next'	// 次ページへのリンクのセレクタ
	});
});
</script>

ボタンで読み込むには

<script type="text/JavaScript">
$(function(){
	$.autopager({
		content	: '.content',	// ロードしたいコンテンツ部分のセレクタ 
		link	: '#next',	// 次ページへのリンクのセレクタ
		autoLoad: false,	// スクロールで自動読込みするどうか
		load	: function(){	// 読み込み完了後に発生するイベント
			// "this"は読み込んだコンテンツ要素を指す
			$(this).before('<hr/>'); // 左記は例(読み込んだヤツの前に区切り線を追加))
		}
	});
	$('#next').click(function(){	// 次ページへのリンクボタンが押されたら
		$.autopager('load');	// loadしやがれぃ!
		return false;
	});
});
</script>

さらに、最後読み込んだ後ボタンを消すにはload部分を下記に変える

load: function(current, next){
if( current.page >= max_num_pages; ?> ){
$(‘#next’).hide();
}
}

WordPressのシングルページで前後の記事のリンクを表示方法

WordPressのシングルページで前後の記事のリンクを表示方法は以下

    <div class="pagination_box">
      <ul>
<?php $nextpost = get_adjacent_post(false, '', false); if ($nextpost) : ?>
        <li class="fL"><a href="<?php echo get_permalink($nextpost->ID); ?>"><img src="<?php bloginfo('template_directory'); ?>/images/prev_btn.png" alt="prev"></a></li>
<?php else: ?>
        <li class="fL"><img src="<?php bloginfo('template_directory'); ?>/images/prev_btn_none.png" alt="prev"></li>
<?php endif; ?>
        <li class="fL"><img src="<?php bloginfo('template_directory'); ?>/images/pagination_separator.png" alt="separator"></li>
<?php $prevpost = get_adjacent_post(false, '', true); if ($prevpost) : ?>
        <li class="fL"><a href="<?php echo get_permalink($prevpost->ID); ?>"><img src="<?php bloginfo('template_directory'); ?>/images/next_btn.png" alt="prev"></a></li>
<?php endif; ?>
      </ul>
      <p><a href="<?php echo esc_url( home_url( '/' ) ); ?>radio/">VIEW ALL</a></p>
    </div>

Advanced Custom Fieldsで他のページのフィールドを値に格納する方法

Advanced Custom Fieldsで他のページのフィールドを値に格納する方法は以下

$food01image = get_field('food01image', 22, true);

WordPress の自動アップデートを止める方法

WordPress の自動アップデートを止めるには、config.phpに下記を追記する。

/** 自動アップデートの無効 */
define( 'AUTOMATIC_UPDATER_DISABLED', true );

WordPressでカスタムフィールにショートコード使用する方法

WordPressでカスタムフィールにショートコード使用するには、
以下のタグを使用する。

<?php
echo apply_filters('the_content', get_post_meta($post->ID, 'foo', true));
?>

wordpressでテーマファイルのphpファイルをインクルードする方法

テンプレートパートファイルをインクルードする場合に、

<?php include (TEMPLATEPATH . '/mydirectory/template.php') ?>

と記述する事も出来る

<?php get_template_part('mydirectory/template'); ?>

と記述する事も出来ます

<?php locate_template( 'mydirectory/template.php', true,true ); ?>

と記述する事も出来ます

wordpressのカスタム投稿のfeed URLを取得

カスタム投稿タイプのスラッグが「blog」の場合。
http://WordPressのサイトアドレス/feed?post_type=blog

固定ページの最上位のスラッグを取得する方法

function.phpに下記を記述

//bodyクラスに最上位のスラッグを表示
function ps_get_root_page( $cur_post, $cnt = 0 ) {
	if ( $cnt > 100 ) { return false; }
	$cnt++;
	if ( $cur_post->post_parent == 0 ) {
		$root_page = $cur_post;
	} else {
		$root_page = ps_get_root_page( get_post( $cur_post->post_parent ), $cnt );
	}
	return $root_page;
}

取得したいテンプレートファイルに下記を記述

$root_slug = ps_get_root_page( $post );
$root_slug = $root_slug->post_name;
echo $root_slug;

WordPressのテンプレートファイル内に、他のテンプレートphpファイルを呼び出す

<?php include( TEMPLATEPATH . '/sample.php' ); ?>

記事・固定ページ内の任意の位置でPHPファイルをインクルード(挿入/実行)する方法

/wp-content/themes/使用中のテーマ名/functions.php の最後に以下を挿入。

function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
} 

add_shortcode('myphp', 'Include_my_php');

読み込みたいphpファイルを作成し、同フォルダにアップする。

記事内に以下を記述(ファイル名がexample.phpの場合)

[myphp file='example']

WordPressの投稿でサイトURLとテーマフォルダのパスをショートコードで取得する方法

サイトURLを取得するショートコードを作成

function shortcode_url() {
    return get_bloginfo('url');
}
add_shortcode('url', 'shortcode_url');

/* 投稿内で [url] と記述する */

投稿内でショートコードを記述するれば、blobinfo(‘url’)の値と置き換えられるようになります。

テーマフォルダのパスを取得するショートコードを作成

function shortcode_templateurl() {
    return get_bloginfo('template_url');
}
add_shortcode('template_url', 'shortcode_templateurl');

/* 投稿内で [template_url] と記述する */

こちらも同じく、投稿内でショートコードを記述すれば、blobinfo(‘template_url’)の値と置き換えられるようになります。

WordPressで特定のカテゴリーの最新記事を表示

WordPressで特定のカテゴリーの最新記事を表示するタグは以下の通り

<?php
query_posts('showposts=1&cat=13');
while(have_posts()) : the_post();
?>
<div><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></div>
<div><?php the_content(); ?></div>
<?php endwhile; ?>

WordPressでカテゴリー一覧を表示する

WordPressでカテゴリー一覧を表示するには、下記の様に記述する。

<ul>
	<?php
	$cat_all = get_terms( "category", "fields=all&get=all&exclude_tree=12&exclude=11" );
	foreach($cat_all as $value):
	 ?>
	<li><a href="<?php echo get_category_link($value->term_id); ?>"><?php echo $value->name;?>(<?php echo $value->count;?>)</a></li>
	<?php endforeach; ?>
</ul>

echo $value->name; //カテゴリ名を出力
echo $value->term_id; //カテゴリIDを出力
echo $value->slug; //カテゴリスラッグを出力
echo $value->count; //カテゴリの投稿数を出力

その他にも、
fields=all&get=all&exclude_tree=12&exclude=11
の部分を変更する事で、取得するカテゴリーを指定することもできる。

詳細はこちら。
http://elearn.jp/wpman/function/get_terms.html

WordPressのカスタムフィールドを改行ありで表示

WordPressのカスタムフィールドを改行ありで表示するサンプルタグは以下の通り。

$sample = post_custom('カスタムフィールド');
echo nl2br($sample);

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress