テンプレートをWordPressに反映させようとすると、WordPress本来のヘッダ情報の一部が邪魔になることがある。

wp_headの詳細はまだどこに書かれているかわからないが、ある程度まとめたものをコツコツと追記する指示は 「wp-includes > default-filters.php」の中に『add_action( 'wp_head',〜』とある部分。

これをひとつずつコメントアウトしながら確認すれば、“add_action( 'wp_hed',〜”のそれぞれの内容が確認できる。

上記の要領で不要なheadの情報をコメントアウトし無効化すれば、テンプレートの反映ができるようになる。

しかしテーマ以外のこの手のファイルは、アップグレード時に書き換えられるものなので、その都度更新作業が発生するのは面倒。

そこで活躍するのが『remove_action』。

この『remove_action』は、function.phpに記述するだけで「add_action」が無効化されます。

例えば、default-filters.phpに記述されている
add_action( 'wp_head',             'wp_enqueue_scripts',              1     );
を無効化したい場合は、function.phpに
remove_action( 'wp_head',             'wp_enqueue_scripts',              1     );
とすればOK!

default-filters.phpでコメントアウトしていなくても無効化されます。

以上、備忘録。
【レスポンシブ対策】

WordPressで本文に、メディア(画像)を挿入するとimgタグにwidthやheightが設置される。

これがあると、レスポンシブなコーディングをする際、非常に邪魔になるので、取り去る事にした。

wordpress-4.2.3-jaの場合、wp-includes > media.phpの118行目。

function image_hwstring( $width, $height ) {
$out = '';
if ($width)
$out .= 'width="'.intval($width).'" ';
if ($height)
$out .= 'height="'.intval($height).'" ';
return $out;
}

if ($width)~次の行まででwidthの記述を、if ($height)~次の行まででheightの記述の設定を行っています。

この部分をコメントアウトするか削除することでwidthとheightの記述のない、空の記述をさせることができます。

function image_hwstring( $width, $height ) {
$out = '';
/*
if ($width)
$out .= 'width="'.intval($width).'" ';
if ($height)
$out .= 'height="'.intval($height).'" ';
*/
return $out;
}

サイズが皆フルサイズになるかと思ったけれど、メディア挿入時に指定したサイズの画像が配置されるので、PC版はCSSでサイズ調整しなくても指定したサイズで表示される。
(※ただし、フルサイズを選択した場合の指定だけはCSSで用意しておく必要がある)

タブレット用やスマートフォン用の調整には、挿入時の指定サイズ毎にsize-full、size-large、size-medium、size-thumbnailの各クラスがimgタグに設置されていますので、それぞれのCSSを用意してあげればOK。
WordPressは条件分岐を使えば、固定ページ毎に設定を行うことができる。

しかし、固定ページに子ページや孫ページを作った場合、子ページや孫ページをいちいち条件分岐に設定するのはとても面倒だし、後々子ページ、孫ページ、もしくは曾孫ページまで追加作成することになるかもしれない。

そんな親ページに対して子孫を設定する方法。

get_post_ancestorsを使う。

使い方はこう。

現在のページが、固定ページ ID =123の子孫なら '固定ページ ID 123 の子孫ページです' と表示する:

if ( in_array(123, get_post_ancestors( $post->ID ) ) ):
echo '固定ページ ID 123 の子孫ページです';
endif;


応用:
固定ページ ID =123の子ページは対象外だが、孫以降は適応させる
(ソース的には「直の親ページのIDが123ではなく、且つ固定ページ ID 123 の子孫ページ」ということ)

if ( $post->post_parent != 123 && in_array(123, get_post_ancestors( $post->ID ) ) ):
echo '固定ページ ID 123 の孫以降ページです';
endif;


参照;WordPress関数リファレンス:get post ancestors
40歳前のオッサンが、会社の会議で否定コメントして終わりって、それはそれはつまらねぇ男が同僚にいる。

会議での意見発信の活性化を図ろうとする進行役の努力に思いっきり水を差すことになるってのが、どうしてその歳でわかんねぇのかな。

否定するならその分の改善案を出すべきだろう。もう立派な地位にいるんだからさ。

しかも新入社員のことは、自分の指導の下手糞さを棚に上げてボロクソいうくせに、そんなことで新人に対して示しが付くとでも思っているのか?

そんなふうに否定だけをするから会議での意見発信が活発にならず皆沈黙し、無駄な時間だけが過ぎていくことになるって普通わかるぞ。

周囲の意見を尊重し、全体をまとめるという“長”としてのスキルは皆無だな。その歳で一兵卒だ。

きっと言葉を正しく使ってないから、そういうことが平気でできるんだろうな。

お客様の前では何も悪いことしてないのに「すみません」を連呼するくせに、社内では社員の強力に対しても「ありがとう」の感謝の言葉すら無い。

自分より成功している人については認めるどころか、「まぁけどあれは~」と、あたかも世界を知り尽くしたような講釈をたれやがる。手前よりずっと立派なのに。

家庭でも会社でも、外で卑屈、中で不作法、あまりに下衆な内弁慶。


きっと手前は、こういう俺を自己中心的価値基準で“面倒くさい”と思っているんだろうな。

俺は会社のための活動において、手前がとても“面倒臭い”!


などと、たまには愚痴のひとつも溢したい。
カテゴリー毎や固定ページ毎にレイアウトや見出しを変えたいとき、WordPressはbodyタグにclassである程度の識別情報を付与してくれるが、単一記事や固定ページなどはpost_idによる識別だけで少し連携がとりずらい。

そこで、bodyタグにidにカテゴリーや固定ページのスラッグを指定した識別を追加する事にする。

ソースはこんな感じ。

<body<?php if(is_home()): echo ' id="home"'; elseif(is_category() || is_single()): $cat = get_the_category(); $cat = $cat[0]; echo ' id="'.$cat->slug.'"'; elseif(is_page()): echo ' id="'.get_post($wp_query->post->ID)->post_name.'"'; endif; ?> <?php body_class(); ?>>

もし、ホームインデックスなら「 id="home"」とし、

あるいはもし、カテゴリーページあるいは単一記事ページであるなら、カテゴリー情報を取得して「 id="スラッグ名"」とし、

あるいはもし、固定ページであるなら、現在表示に関する情報から記事のIDを取得し更にget_postで詳細を取得し、そこから固定ページのスラッグ名post_nameをしていして「 id="スラッグ名"」としなさい。

みたいなことです。

ここで大切なのが、『$wp_query』。

詳細がわかっているわけではないが、概ねwhileなどループをする前に大前提を用意してくれるグローバル変数というものらしい。

多分ループ前に使うものだと思う。

現在表示している情報なんかが一通り格納されているのでは?

詳しくは「WordPressのループの仕組みを深く知る query_posts() と get_posts() の違い 」に書いてあり、参考にしました。