質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

2回答

2412閲覧

Custom Field Templateを使って外部CSSのアップロード

Leon-Lionking

総合スコア37

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/04/27 05:48

編集2017/04/27 06:20

Wordpress で個別ページ・投稿ページごとに外部CSSをファイルアップロードさせる方法をご教授お願いします。

下のサイトの記事を参考してみましたが、

<a href="https://teratail.com/questions/32918" target="_blank" >https://teratail.com/questions/32918</a>

絶対パスを必ず入れなければならない状態です。

内容
・Custom Field Template のプラグインを使用
・外部CSSを読み込ませる。
・絶対パス(例:http://example.com/wp/wp-content/themes/mytheme/css/)手間のかかる入力は避けたい。

コード

//定義の設定 define( 'TEMPLATEURL', get_bloginfo( 'stylesheet_directory' )); function include_custom_css(){ if(is_single()||is_page()){ $cssstr = get_post_meta( get_the_ID(), 'importCSS', true ) ){ $cssarr = split( " ", $cssstr ); for( $i = 0; $i < count( $cssarr ); $i++ ){ echo "<link type="text/css" rel="stylesheet" href="' . TEMPLATEURL . '/css/' . $cssarr[ $i ] . '" />\n"; } } } add_action('wp_head','include_custom_css');

管理画面の「Custom Field Template」の設定

・テンプレートタイトル:importCSS
・投稿タイプ:●両方
・テンプレートコンテンツ:
[inportCSS]
type = file
size = 20
label = ファイルアップロードCSS

以上です。

ご教授よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/04/27 05:54

「読み込ませる」「インポート」の違いはどのようなものなのでしょうか。また、例示用ドメインはご自身で所有されていない限り example.com, example.jp, example.co.jp など例示用に予約されたドメイン名を利用してください。 http://www.atmarkit.co.jp/fwin2k/win2ktips/801exampledom/exampledom.html
Leon-Lionking

2017/04/27 06:20

質問の内容がわからず、すみません。ドメインに関して、修正しておきました。また再度教授お願いします。
guest

回答2

0

自己解決

アドバイスしてくれてありがとうございます。
概念を変えてみました。

/** * * 外部CSSを読み込む * */ // 定義設定 define( 'TEMPLATEURL', get_stylesheet_directory_uri() ); function include_css(){ if( is_single || is_page() ){ // single page 両方表示 if( $string = get_post_meta( get_the_ID(), 'includeCSS', true ) ){ $array = explode( ',', $string ); for( $i = 0; $i < count( $array ); $i++ ){ echo '<link href="' . TEMPLATEURL . '/css/' . $array[ $i ] . '" type="text/css" rel="stylesheet" />' . "\n"; } } } } // カスタムCSS の読込 add_action( 'wp_head', 'include_css' );

管理画面の「Custom Field Template」の設定

・テンプレートタイトル:importCSS
・投稿タイプ:●両方
・テンプレートコンテンツ:
[inportCSS]
type = text
size = 50
label = 外部CSS

アドバイスしてくれてありがとうございます。

補足:PHP7以上の環境の場合
・split() この関数は PHP 5.3.0 で 非推奨 となり、 PHP 7.0.0 で 削除 されたそうです。
・explode() 代用の関数を使用することによって、正常に動きました。

参考
split — 正規表現により文字列を分割し、配列に格納する

WordPress 日本語版の推奨動作環境
・PHP バージョン 7 以上
・MySQL バージョン 5.6 以上 または MariaDB バージョン 10.0 以上

であれば、split() を使うのでなく、代用の関数 explode() を使うとよいでしょう。

以上です。

ありがとうございました。

投稿2017/04/28 07:11

Leon-Lionking

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

type = file の指定の仕方及び取得の仕方が下記記事になります。

【Custom Field Templateの使い方[WordPress]】
http://kotori-blog.com/wordpress/customfieldtemplate/#pdf

get_bloginfoget_stylesheet_directory_uri を使うほうが良いです。(上記記事によるとそもそも使う必要が無いと思いますが)

【URLを出力する際に bloginfo() に代わるテンプレートタグ | Web Design Leaves】
http://www.webdesignleaves.com/wp/wordpress/97/

CSSは直接link要素を使わず、wp_enqueue_style を使うのが最近のやり方です。

【WordPress で CSS、JavaScript ファイルを読み込む正しい方法 | EastCoder;】
http://eastcoder.com/2014/07/proper-way-to-enqueue-scripts-and-styles-with-wordpress/

投稿2017/04/27 09:21

kei344

総合スコア69446

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問