web-dev-qa-db-ja.com

プラグインを使用してheader.phpにカスタムコードを追加する

私がしているあらゆるサイトのheader.phpに入れる傾向があるたくさんのコードを持っています。それらはInternet Explorerに特有のものです。

コードを '標準'のheader.phpに挿入する方法があるかどうか私は思っていませんでした。

はい、ヘッダーを変更するだけです。しかし、アイデアはこれを一般的なプラグインにすることです。

具体的には、デフォルトのスタイルシートの直後にヘッダーの次の部分をエコーするプラグインを作成します。

<!--[if IE]>
  <link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/ie.css" type="text/css" />
<![endif]-->
2
jchwebdev

具体的には、デフォルトのスタイルシートの直後にヘッダーの次の部分をエコーするプラグインを作成します。

デフォルトの/ mainスタイルシートを dependency として、 enqueue itを使用することをお勧めします。

これがデモプラグインです。

+ plugins/
|
+--+ my-ie-style/
   |    
   +--+ my-ie-style.php
   |
   +--+ css/
      |
      +--+ ie.css

my-ie-style.phpファイルは次のとおりです。

<?php
/**
 * Plugin Name: Demo - My IE style
 * Plugin URI:  http://wordpress.stackexchange.com/a/85496/26350
 * Description: Enqueue With IE conditional, depending on the main-style stylesheet
 * Author:      wpse
 * Version:     1.0.0
 */
add_action( 'wp_enqueue_scripts', function()
{
    // Register
    wp_register_style( 
       'my-ie-style',                                 // handle
       plugin_dir_url( __FILE__  ) . 'css/ie.css',    // file
       [ 'main-style' ],                              // dependency    <-- ADJUST THIS!
       '1.0.0',                                       // version
       'all'                                          // media
    );

    // Enqueue
    wp_enqueue_style( 'my-ie-style' );

    // Add IE conditional
    wp_style_add_data( 
        'my-ie-style',  // handle
        'conditional',  // key ('conditional', 'rtl', 'suffix', 'after', 'alt', 'title')
        'IE'            // value
    );
} );

これにより、<head>タグ内に以下が生成されます。

<link rel='stylesheet' 
      id='main-style-css'  
      href='http://example.tld/wp-content/themes/mytheme/style.css?ver=4.5.3' 
      type='text/css' 
      media='all' />

<!--[if IE]>
<link rel='stylesheet' 
      id='my-ie-style-css' 
      href='http://example.tld/wp-content/plugins/my-ie-style/css/ie.css?ver=1.0.0' 
      type='text/css' 
      media='all' />
<![endif]-->

custom IEスタイルシートは main stylesheetの後にロードされます。

うまくいけば、あなたはあなたのニーズに合わせてそれを調整することができます。

1
birgire

wp_enqueue_style()が欲しいです。これはベスト・プラクティスと考えられており、wp_headにフックするよりも、もっとエレガントなものです。

http://codex.wordpress.org/Function_Reference/wp_enqueue_style

0
Justin W Hall