私はウェブサイトをWordPressに移行しています - それはBootstrapとLESSの両方を使います。 Bootstrapを有効にするためのスニペットと、functions.php経由で出力されたCSSを見つけました。
function theme_add_bootstrap() {
wp_enqueue_style( 'bootstrap-css', get_template_directory_uri() . '/third_party/bootstrap/css/bootstrap.min.css' );
wp_enqueue_style( 'style-css', get_template_directory_uri() . '/css/custom.css' );
wp_enqueue_script( 'bootstrap-js', get_template_directory_uri() . '/third_party/bootstrap/js/bootstrap.min.js', array(), '3.0.0', true );
}
これはそれだけでうまくいった。とは言っても、それは私のLESSプリコンパイラによって出力される最終的なCSSを説明するだけで、CSSを先にコンパイルしない限り(MAMPを使って)私のLESSスタイルの変更をローカルに見ることができないので痛みです。
CSSファイルをプロダクションで使用し、LESSファイルをローカルで開発するときに使用したいと思います。上記のBootstrap関数の下に次の関数を追加してこれを試みました。
function less_enqueue_scripts() {
$current_user = wp_get_current_user();
if ( $current_user--->ID == '1' )
wp_enqueue_script( 'lesscss', get_stylesheet_directory_uri() . '/third_party/less-1.5.0.min.js' );
}
add_action( 'wp_enqueue_scripts', 'less_enqueue_scripts' );
function less_filter_stylesheet_uri( $stylesheet_uri, $stylesheet_dir_uri ) {
$current_user = wp_get_current_user();
if ( $current_user--->ID == '1' )
$src = $stylesheet_dir_uri . '/css/custom.less';
else
$src = $stylesheet_dir_uri . '/css/custom.css';
return $src;
}
add_filter( 'stylesheet_uri', 'less_filter_stylesheet_uri', 10, 2 );
しかし、それはサイトを壊しています。 Bootstrap関数の2番目のステートメントがこれらの関数を妨害しているのか、または別の問題が原因であるのかどうかはわかりません。任意の洞察をいただければ幸いです。
追加の関数を作成する必要はなく、既に持っているものを再利用して少し調整するだけです。
function theme_add_bootstrap() {
wp_enqueue_style( 'bootstrap-css', get_template_directory_uri() . '/third_party/bootstrap/css/bootstrap.min.css' );
wp_enqueue_script( 'bootstrap-js', get_template_directory_uri() . '/third_party/bootstrap/js/bootstrap.min.js', array(), '3.0.0', true );
if (WP_ENV === 'development') {
wp_enqueue_script( 'lesscss', get_stylesheet_directory_uri() . '/third_party/less-1.5.0.min.js' );
wp_enqueue_style( 'style-less', get_template_directory_uri() . '/css/custom.less' );
} else {
wp_enqueue_style( 'style-css', get_template_directory_uri() . '/css/custom.css' );
}
}
そのセットアップが完了したら、開発マシンのwp-config.php
に移動して次の行を追加します。
define('WP_ENV', 'development');
プロダクションwp-config.php
にその行がない場合、LESSではなくCSSを使用する必要があります。
このメソッドを The Roots theme から採用しました。これは、似たようなものに同じメソッドを使用します。