ホームページにのみカスタムインラインjsを含めたい。閲覧部からホームページを設定していません。私はhome.phpファイルを使っています。
function print_my_inline_script() {
if (is_home() && wp_script_is( 'jquery', 'done' ) ) {
?>
<script type="text/javascript">
jQuery(document).ready(function($){
$('.carousel').carousel();
$('.item').hover(function(e){
$(this).find('.summary').stop().fadeTo('fast',1);
},function(){
$(this).find('.summary').stop().fadeOut('fast');
});
});
</script>
<?php
}
}
add_action( 'wp_footer', 'print_my_inline_script' );
これはうまくいきません。 is_front_page()
も動作しません。
私はすでにループの後に<?php wp_reset_query(); ?>
をしました。
もう1つ質問があります。 home.pageがindex.php
をオーバーライドしてホームページとして機能することを私は知っています。しかし、reading
セクションのオプションを変更したときにユーザーが混乱したくないと思います。
私はこれを見つけました、
update_option( 'page_on_front', $post->ID );
update_option( 'show_on_front', 'page' );
しかし、それはIDを必要とし、私はどんなページも持っていないので、私はどんなIDも持っていません。
だから、私はユーザーがhome.php
(home page)にいるかどうかcheckを設定する方法が必要です、そしてhome.phpを使うことは読書セクションオプションをオーバーライドするので、それに対する何か回避策は?
ホームページにのみカスタムインラインjsを含めたい。閲覧部からホームページを設定していません。私はhome.phpファイルを使っています。
ホームページとは、実際にはサイトフロントページを意味します。その場合、サイトにいるかどうかにかかわらず、ブログ投稿インデックスに適用されるので、is_home()
またはhome.php
についてはあまり気にしないでくださいページまたは他のページ。
また見なさい:
もう1つ質問があります。 home.pageがindex.phpをオーバーライドし、ホームページとして機能することを私は知っています。しかし、私は彼らが読書セクションのオプションを変更するときに私のユーザーが混乱したくないようにします。
繰り返しますが、ここでの混乱はホームページをサイトフロントページ対ブログ投稿インデックスとみなします。さらなる説明については、 サイトフロントページ表示用のテンプレート階層 を参照してください。
スクリプトをエンキューするための正しい条件を選択した場合、ユーザー読み取り設定は影響を与えません。
これはあなたのコールバックでは条件付きです:
if ( is_home() && wp_script_is( 'jquery', 'done' ) )
is_home()
:サイトのフロントページをターゲットにする場合はis_front_page()
を使用する必要がありますwp_script_is( 'jquery', 'done' )
:これは不要のようです。 依存関係としてスクリプトをjquery
に登録するだけです私はこれを見つけました、
update_option( 'page_on_front', $post->ID ); update_option( 'show_on_front', 'page' );
しかし、それはIDを必要とし、私はどんなページも持っていないので、私はどんなIDも持っていません。
だから、私はユーザーがhome.php(ホームページ)にいるかどうかをチェックを設定する方法が必要であり、home.phpを使用すると読書セクションのオプションをオーバーライドするので、それに対する任意の回避策?
これは本質的に_doing_it_wrong()
です。ユーザー設定を上書きする必要はありません。正しい条件を選ぶだけです:
is_front_page()
を使用します。'page' == get_option( 'show_on_front' )
を使用します。get_option( 'page_on_front' )
を使用します。custom.js
ファイルに追加します。wp_enqueue_scripts()
にフックされたコールバックを追加します:
add_action( 'wp_enqueue_scripts', 'wpse58196_enqueue_custom_script' );`
コールバック内で、正しい条件に基づいてカスタムスクリプトをエンキューします。
function wpse58196_enqueue_custom_script() {
// If we're on the site front page, and the front page displays a static page
if ( is_front_page() && 'page' == get_option( 'show_on_front' ) ) {
// Enqueue custom script, with jQuery as a dependency, and output in the footer
wp_enqueue_script(
// handle
'custom-carousel',
// path
get_template_directory() . '/custom.js',
// dependency array
array( 'jquery' ),
// version
'1.0',
// in footer?
true
);
}
}
あなたの問題はおそらくwp_script_is()
に関連しています。
代わりにこれを試してください
function aa_home_scripts() {
if(is_home()){
wp_enqueue_script(
'app-home',
get_template_directory_uri() . '/js/app.home.js',
array('jquery'), // declare jQuery as dependancy
'1',
true // flag to add to footer
);
}
}
add_action('wp_enqueue_scripts', 'aa_home_scripts');
必要なものは
if ( is_front_page() || is_page_template( 'home.php' ) {
//javscript stuff...
}