: PHP

WordPressの新規テーマ作成時function.phpに書いているもの

WordPressの使い方

Wordpressの新規テーマを作るとき、function.phpにあらかじめ書いていることを紹介します。これで、若干作業が捗るとよろしいかと思います。

短縮URLを呼び出せるようにしてみよう

teitterとかにシェアさせるときは、短縮URLがいいよね。ってことで、URLを短縮させるコードをfunction.phpに設定しておきましょう。

ここではtinyurl.comのapiを使った例をご紹介します。

<?php
//短縮URLの設定
function getTinyUrl($url) {
    $tinyurl = file_get_contents("http://tinyurl.com/api-create.php?url=".$url);
    return $tinyurl;
}
?>

と書けば、短縮URLを作ってくれます。

呼び出す時は、以下のような感じです。

<?php echo getTinyUrl(get_permalink($post->ID)); ?>

子ページの有無を判定

ページが子ページを持ってるかどうかを判定してくれます。ハブページなんか作るときに重宝してます。

<?php
// 子ページ判定
function is_subpage() {
    global $post; // $post には現在の固定ページの情報があります
	if ( is_page() && $post->post_parent ){ // 現在の固定ページが親ページを持つかどうかをチェックします
		$parentID = $post->post_parent; // 親ページの ID を取得します
		return $parentID; // 親ページの ID を返します
	} else { // 親ページを持っていない場合
		return false; // false を返します
	};
};
?>

呼び出す時は、以下のような感じです。

<?php
    if(is_subpage()){
        echo "子ページです。";
    }else{
        echo "子ページではありません。";
    }
?>

アーカイブページで現在のカテゴリー・タグ・タームを取得する

これは本当に便利です。アーカイブページのカテゴリやタグの情報をごっそりとってきてくれます。

<?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);
}
?>

呼び出す時は、以下のような感じです。

<?php
    //カテゴリ・タグ・カスタムタクソノミー オブジェクトを取得
    $term = get_current_term(); 
    //以下は必要に応じて記述
    echo $term->name; //名前を表示
    echo $term->slug; //スラッグを表示
    echo $term->description; //説明文を表示
    echo $term->count; //投稿数を表示
?>

ブログを判定する

「投稿(POST)」に含まれるページを判定してくれます。これはカスタム投稿タイプを使ってたりすると、便利です。

<?php
function is_blog () {
global  $post;
$posttype = get_post_type($post );
return ( ((is_archive()) || (is_author()) || (is_category()) || (is_home()) || (is_single()) || (is_tag())) && ( $posttype == 'post')  ) ? true : false ;
}
?>

呼び出す時は、以下のような感じです。

<?php if (is_blog()) { echo 'ブログだよ'; } ?>
Tags: ,