ログイン画面で使うだけならページに直書きしたほうがエコだとは思いますが、以下は外部ファイル化する前提で。
* ログイン画面で、外部CSSを読み込むなら admin-ajax.phpを使うほうが簡単で安全じゃないかと。nonceの処理もしましょう。
* ob_start() と ob_clean() はいらないので削除した方がいいです。
* wp_kses()とstr_replace()の部分もいらないのではないかと。nonceをちゃんとやれば、管理者が変なのを入力してもセキュリティリスクは限定的じゃないかと。
* CSSのエスケープはJetPackのソースを参考にするといいかも。
Takayuki Miyauchiさん
ありがとうございます。
プラグインはとりあえずCSS直書きに戻してアップデートしました。
外部ファイル化したかったのは、
ページのソースを表示したときにCSSが直書きしてるのが気になるのと、
外部ファイル化してみたかった(かっこよさそう)という理由なのですが
プラグインは確実でエコな直書きでいくとして、
それとは別に、教えていただいた方法で外部ファイル化に挑戦してみます。
ありがとうございました。
こんにちは!
そのユーザーさんのCSSの読み込みがどうなっているか(URLが間違っているか、そもそもキ記述がないか)、ソースコードかなにか貰えたら手がかりになりそうですが、こちらは確認できないですか?
(あ、すいません回答ついてるの確認せずに投稿してしまいました….でも消さずにのこしておきます)
こんにちは
こちらの環境で確認したところローカル、サーバー、シングルサイト、マルチサイトともきちんと表示されていて問題が特定できません…
0.5をインストールしてみましたが、こちらではうまく動作しているようです。
いずれにしろ、不具合の再現が出来ないと対策も打てないと思います。
home_url() のところは 確かに、どうなんですかね?
私も、同じような形に変更してテストをしましたが、最終的にパスにしました。
多分問題が出たと思うんですが、詳細は霧の中です。
@param string|bool $src Path to the stylesheet from the WordPress root directory. Example: '/css/mystyle.css'.
になっていますが、Codexは、
http://codex.wordpress.org/Function_Reference/wp_enqueue_style
URL to the stylesheet
ですよね、コードを読み込んで判断する必要がありそうですね。
参考になるかどうか解かりませんが、
http://tenman.info/labo/snip/archives/4210
をベースに同種のコードを書いているときに、スタイルシートは、外部ファイル化できているのに(htmlソースは存在している)しかし、スタイルは反映しないという問題がありました。
DOMソースをみると、空白で、DOMに間に合っていませんでした。
( ob_clean()の手前で、exitするか、後ろでexitするかみたいなことでした )
なので、スタイルが適用されないといった時に、外部スタイル化したリンクがおかしいのか、外部スタイルは正常なのに表示されないといった 問題の切り分けが必要ではないかと思います。
add_action( 'login_enqueue_scripts', 'ms_custom_login_style' );
の定番は、優先度 99 になっていたと思います。
忘れましたが、
http://ottopress.com/
のどっかに、このコーディングがあると思います。wp_enqueue_scripts をベースに記述されていたと思うので、login_enqueue_scriptsの場合は?
というのもあるのかもしれませんね。
とりとめなくなりましたが、参考まで
Mayo Moriyamaさん
nobitaさん
ありがとうございます!
ユーザーさんにソース確認してもらって、原因を探ったほうがいいのかもしれませんが、
CSS直書きで表示されるなら、ユーザーさんに手間をかけさせるのは申し訳ないと思うので、(それとユーザーさんに説明する英語力に問題が…)
このプラグインは直書きのままにすることにしますー。
せっかく書き込んでくださったのにすみません。
ただ、テーマのほうでカスタムCSSをオプションに追加したいので、
Miyauchiさんに教えていただいたadmin-ajax.phpを使う方法を試してみようかと思います。
nobitaさんのブログにadmin-ajax.phpを使った方法が書いてあって
すごく参考になります。ありがとうございます。
まずは教えていただいた記事など参考にやってみます。
ありがとうございました。
@mignon Style さん
Takayuki Miyauchiさんの ajax.php を使う方法、実現出来たら、シェアしてもらえるとうれしいです。
jetpack についての補足
CSS Tidyで、スタイルのバリデーションをしているみたいですが、CSS Tidyは CSS2.1までしかサポートしていないので、プラグインでルールを拡張しているようですが、残念ながら CSS3のルールは、網羅できていないみたいです。
CSSのバリデーションを以前試した時のプロパティのリスト(足りない分は、ご自身で、、)
リンクしておきますので、お役に立てばうれしいです。
http://tenman.info/labo/snip/archives/4609
nobitaさん
返信遅くなってすみません。
Ajaxを使った方法、難しくて難航しています…
ちゃんと出来たらシェアさせていただきますのでしばらくお待ち下さいー。
ちなみに参考サイト:
・Codex AJAX in Plugins http://wpdocs.sourceforge.jp/AJAX_in_Plugins
・初歩からわかるWordPressのnonceでAjaxをセキュアに実装する方法 http://tokkono.cute.coocan.jp/blog/slow/index.php/wordpress/secured-ajax-with-wp-nonce/
・AjaxでWordPressのコンテンツを遷移せず表示させる http://show-web.jp/2012/08/12/ajaxでWordPressのコンテンツを遷移せず表示させる/
MiyauchiさんのGitHubにあったファイルがとてもよさそうだけど、
クラス化されててよくわからないので解読中です。
・WordPressでちょっとだけ簡単にAjax https://gist.github.com/miya0001/1967049
jetpackについての補足もありがとうございました 🙂
nobitaさん、返信遅くなってすみません。
jetpackについての補足もありがとうございます。
ajax.phpを使う方法は試してるところですが、ちょっと時間かかりそうです。
また質問させていただくかもしれませんが、最初の質問と変わるので
そのときはまた新しくトピを立てさせて頂こうかと思います。
こちらは一旦、解決済みとさせていただきます。
Takayuki Miyauchiさん、Mayo Moriyamaさん、nobitaさん
ありがとうございました。