スポンサーリンク

特定のIDのページに指定したスキンを適用する方法

Wordpress
スポンサーリンク
スポンサーリンク

スキン m-tomato の投稿に作者さまがお返事をくださいました。
特定のIDのページに指定したスキンを適用するという、素敵なカスタマイズを教えていただいたんです。ありがとうございます。

作者さまの掲示板

Simplicity
内部SEO施策済みのシンプルな無料Wordpressテーマを公開しています。初心者でも出来る限り分かりやすく使えるように作成しました。

Simplicityのカスタマイズ方法

備忘録として、作者さまの掲示板に書いていただいたカスタマイズ方法を引用させていただきます

【以下引用】

 子テーマのfunctions.phpに以下を貼り付けて、関数を編集すると思い通りのスキンを表示させることができるようになるかと思います。

function get_skin_file(){
  $file_path = get_theme_mod( 'skin_file', null );
  if ( $file_path ) {
    $file_path = remove_protocol($file_path);
    //CSS縮小化プラグインのためにプロトコルをつけるように変更v2.2.1
    //プロトコルがついていないと縮小化できないプラグインもある
    if ( is_ssl() ) {
      $file_path = 'https:'.$file_path;
    } else {
      $file_path = 'http:'.$file_path;
    }

    return $file_path;
  }
}

例えば、投稿IDが2071の投稿だけスキンを適用するなら以下のようにURLを指定したりしてカスタマイズできます。

function get_skin_file(){
  //特定の投稿でスキンを指定する(style.cssのURLを指定)
  if (is_single('2071')) {
    return 'http://127.0.0.1:4001/wordpress/wp-content/themes/simplicity2-child-css-icon/skins/m-tomato/style.css';
  } else {//それ以外はスキンを適用しない
    return ;
  }
}

指定したページ以外は、テーマカスタマイザーで設定されているスキンを表示する場合はこんな感じ。

function get_skin_file(){
  $file_path = get_theme_mod( 'skin_file', null );
  if ( $file_path ) {
    $file_path = remove_protocol($file_path);
    //CSS縮小化プラグインのためにプロトコルをつけるように変更v2.2.1
    //プロトコルがついていないと縮小化できないプラグインもある
    if ( is_ssl() ) {
      $file_path = 'https:'.$file_path;
    } else {
      $file_path = 'http:'.$file_path;
    }
    //特定の投稿でスキンを指定する(style.cssのURLを指定)
    if (is_single('2071')) {
      return 'http://127.0.0.1:4001/wordpress/wp-content/themes/simplicity2-child-css-icon/skins/m-tomato/style.css';
    } else {//それ以外はテーマカスタマイザーのスキンで設定されている菌ファイルを表示
      return $file_path;
    }
  }
}

※スキンのURLはそれぞれのサイトのアドレスにする必要があります。

cocoonのカスタマイズ方法

またまた掲示板で質問したら、早速おしえていただきました。

Cocoonでget_skin_url関数をオーバーライドしてページ毎にスキンを切り替えるコード例


function get_skin_url(){
$skin_file = get_theme_option(OP_SKIN_URL, '');
if (is_single('m-sora')) {
$skin_file = get_template_directory_uri().'/skins/m-sora/style.css';
} elseif (is_single('itsumono-skin')) {
$skin_file = get_template_directory_uri().'/skins/skin-ganchan02/style.css';
} elseif (is_single('odekake')) {
$skin_file = get_template_directory_uri().'/skins/skin-ganchan11/style.css';
} elseif (is_single(array('modernblack', '0-6-2'))) {
$skin_file = get_template_directory_uri().'/skins/skin-modernblack/style.css';
} elseif (is_single(array('skin-dot'))) {
$skin_file = get_template_directory_uri().'/skins/skin-dot-winered/style.css';
} elseif (is_single(array('0-6-4'))) {
$skin_file = get_template_directory_uri().'/skins/skin-dot-rainyblue/style.css';
} elseif (is_single(array('skin-mix'))) {
$skin_file = get_template_directory_uri().'/skins/skin-mixred/style.css';
} elseif (is_single(array('lightning-skin'))) {
$skin_file = get_template_directory_uri().'/skins/lightning-skin/style.css';
} elseif (is_single(array('skin-samuraiblue', '0-7-6'))) {
$skin_file = get_template_directory_uri().'/skins/skin-samuraiblue/style.css';
} elseif (is_single(array('skin-ganchan21', '1-0-1'))) {
$skin_file = get_template_directory_uri().'/skins/skin-ganchan21/style.css';
} elseif (is_single(array('skin-samuraiblue-muji', '1-0-2'))) {
$skin_file = get_template_directory_uri().'/skins/skin-samuraiblue-muji/style.css';
}
return $skin_file;
}

コメント