このCSSスタッフィングは機能しますが、これは良い習慣ですか?


9

プラグインに動的CSSを含めようとしています。どこでも検索してきましたが、自分と同じようなケースは見つかりません。そして私がそれをするために使用するのは、?>WPヘッドを呼び出すような他のものを追加することなく、phpタグを閉じた後、プラグインのphpファイルの最後に直接CSSファイルを追加することです。

プラグインのファイルの最後に直接挿入したコードの例を次に示します。

<style type="text/css">

   .innertrow { background-color: <?php get_options('css_value');?>}

</style>

それは良い習慣ですか?

回答:


11

wp_add_inline_style()を使用して、プラグインなどで定義済みのスタイルシートに追加できます。このようにして、オプション画面または他のユーザー設定が最終的なスタイル出力に影響を与える可能性があります。

ただし、ユーザーに権限を与える変更の数によっては、これは非常に退屈な作業になる可能性があります。しかし、私が知る限り、これは「ベストプラクティス」です。


1
そして、WPで知らない関数があります。:)コースを+1します。
gmazzap

2

もちろん、Wordpressではプラグインエラーと見なされるため、これは良い方法ではありません。次のようなプラグインのアクティブ化時にエラーメッセージが出力されます。

The plugin generated xxx characters of unexpected output during activation. If you notice headers already sent messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.

ここで、xxxは、?>タグの後に置くコード+スペースの量です。これは<?php、メインプラグインの最初のタグの前または後に、スペースまたは許可されていないコードを配置するのと同じです。


1

PHPを使用してCSSファイルを動的に作成することは可能だと思いますが、それについてもっと知る必要があります。私が取り組んでいるテーマにたくさんのCSSが含まれていることに気付いたので、すぐにそれを計画しています。多くの点で悪い習慣なので、可能な限り回避するのが最善です。悲しいことに、1日は24時間しかありません...!


1

動的CSSを追加する必要があり、追加するスタイルシートがまだ追加されていない場合は、wp_headアクションフックにフックして出力できます。

<?php
function wpse_111373_output_plugin_css() {
    ?>
    <style type="text/css">
        .innertrow { background-color: <?php get_option('css_value'); ?>;}
    </style>
    <?php
}
add_action( 'wp_head', 'wpse_111373_output_plugin_css' );

プラグインファイルの最後にCSSを追加しないでください。ただし、これが「ベストプラクティス」である限り、私にはわかりません。:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.