投稿画面から、ページスタイルを指定する方法
2009年 5月 26日 admin
How to: Embed CSS in your posts with a custom field特定の投稿に、特別なスタイル指定が必要な事があります。
CSSを直接変更する手もありますが、うまい方法とはいえません。
カスタムフィールドを使ってCSSをページに埋め込むレシピを紹介します。
最初に、header.phpを開いて以下の高度を<head>と</head>の間に、コピペしてください。
<?php if (is_single()) { $css = get_post_meta($post->ID, 'css', true); if (!empty($css)) { ?> <style type="text/css"> <?php echo $css; ?> <style> <?php } } ?>
一度これをコピペするだけで、投稿に、カスタムスタイルを適用したいときに、カスタムフィールドの名前をcssとして値にスタイル記述すれば、いつでも利用できるようになります。
この方法は、本文中にthe_meta()を使っている場合は、スタイルの指定が本文にも表示される不都合があります。
以下に示す関数を、functions.phpに記述する事で、bodyタグ内に、the_meta()を記述しても、埋め込みCSSはフィルタされます。
/** * カスタムフィールドで 'CSS', 'JavaScript', 'Meta' は、the_metaから除外する。 * * */ function filter_explode_meta_keys( $content, $key ) { $explode_keys = array( 'css', 'JavaScript', 'Meta' ); // 除外したいキーを設定 if ( in_array( $key, $explode_keys ) ) return; else return $content; } add_filter( 'the_meta_key', 'filter_explode_meta_keys', null, 2 );
動作に問題があるときには、cssのキー名が、全角になっていないかチェックしてみてください。