FAQ

Just another 仙台入門new weblog

­

投稿画面から、ページスタイルを指定する方法

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のキー名が、全角になっていないかチェックしてみてください。

.
© FAQ Entries (RSS) and Comments (RSS)