WordPress の固定ページ編集画面でのページテンプレートの判別方法

WordPress: 4.3.1

サンプルコード

まずは先に結論のサンプルコードから記します。

function is_admin_using_page_template( $template = '' ) {
    if ( is_admin() ) {

        $post_id = 0;
        if ( isset( $_GET['post'] ) ) {
            $post_id = $_GET['post'];
        } elseif ( isset( $_POST['post_ID'] ) ) {
            $post_id = $_POST['post_ID'];
        }

        $page_template = get_post_meta( $post_id, '_wp_page_template', true );

        if ( $template === $page_template ) {
            return true;
        }

        if ( is_array( $template ) ) {
            if ( in_array( $page_template, $template, true ) {
                return true;
            }
        }
    }

    return false;
}

使い方

is_admin_using_page_template( 'template-example.php' );

上記のように、template-example.php テンプレートを使用しているかどうかをチェックできます。引数の部分は配列を取ることもできます。

ポイント

投稿ID の取得には $_GET['post'] を使います。
ページテンプレートの取得には get_post_meta() を使います。

Advertisements
WordPress の固定ページ編集画面でのページテンプレートの判別方法

Mac で `rename` コマンドを使ってファイル名を一括変更

OS: OS X 10.9.5
Homebrew version: 0.9.5
rename version: 1.600

Homebrew で rename をインストール

Homebrew が入っていない場合はこちらからインストール。

$ brew install rename

* Linux の rename とは別物です。

使い方

ヘルプコマンドで確認。

$ rename --help

もしくは、

$ rename -h

例1

ディレクトリ内の全ファイルの名前の “foo” 部分を “bar” に変更。

$ rename -s foo bar *

例2

拡張子 “css” を “scss” に変更。ファイル名途中の css が変更されてしまうのを防ぐため、正規表現で置換します。

$ rename 's/\.css$/.scss/' *.css
Mac で `rename` コマンドを使ってファイル名を一括変更

空白文字(スペース、タブ、改行など)の正規表現

\s

[ \r\t\n\f\v] に相当します。

連続した空白文字すべてに一致させたい場合は、

\s+

PHP での置換例:

<?php

$list = '<ol>
    <li>1</li>
 
      
     <li>2</li>

    <li>3</li>    
<li>4</li> 
    <li>5</li>
</ol>';

$list = preg_replace( '/\/li>\s+<li/', '/li><li', $list );

echo $list;

出力される文字列

<ol>
	<li>1</li><li>2</li><li>3</li><li>4</li><li>5</li>
</ol>
空白文字(スペース、タブ、改行など)の正規表現