私は私の特定のページに追加したいこのコードを持っています。そのためのファイルを作成してからetcなどを含めたくありません(ただしそれが唯一の方法であるかどうかを教えてください)。また、すべてのページに含まれるため、ヘッダーに含めることは望ましくありません。コードは次のとおりです。
<script type="text/javascript">
$(function () {
$('input[name=done]:radio').click(function () {
if ($(this).val() === "Yes") {
$('#p-days').show();
} else {
$('#p-days').hide();
}
});
$('input[name=already-b]:radio').click(function () {
if ($(this).val() === "Yes") {
$('#div-name').show();
} else {
$('#div-name').hide();
}
});
});
</script>
テキストを選択してエディタにこれを追加しました(ビジュアルモードではありません)。しかしそれは機能していません。私が悪いことをしているという考えはありますか?
ありがとう。
@s_ha_dumは正しいですが _は_ jQueryを使用する必要がありますWordPress内で競合しない元の質問は未回答のままです。
私は私の特定のページに追加したいこのコードを持っています。
これを行うにはいくつかの方法があります。
このメソッドはWordPressフック wp_enqueue_scripts
を使います
my-nifty-custom.js
functions.php
に以下を追加してください。
/* Enqueue scripts (and related stylesheets) */
add_action( 'wp_enqueue_scripts', 'my_nifty_scripts' );
/**
* Registers scripts for the theme and enqueue those used site wide.
*
* @since 0.1.0.
*/
function my_nifty_scripts() {
wp_register_script('my-nifty-custom', get_stylesheet_directory_uri() . '/js/my-nifty-custom.js', false, null, true);
if(is_page('page-slug-here')){
wp_enqueue_script('my-nifty-custom');
}}
子テーマを使用している場合、またはそれをもっとしたい場合は、全体を after_setup_theme
で囲んでください。
add_action( 'after_setup_theme', 'nifty_theme_setup' );
function nifty_theme_setup() {
// script function and other functions that should happen after the initial theme setup
}
これはもう少し複雑です。幸いにして、Paul Irishがここで素晴らしいブログを書きました: http://www.paulirish.com/2009/markup-based-unobtrusive-comprehensive-dom-ready-execution/
このメソッドを使用すると、Bodyクラスに基づいてページごとにカスタムJSが取得されます。例<body class="nifty">
それからあなたは使用するでしょう:
//clip
nifty : {
init : function(){ //custom script goes here }
}
//clip
これに関する唯一の問題はページがあなたが呼んでいるボディクラスを持たなければならないということです。このためWordPressには body_class
という関数があります
add_filter('body_class','nifty_class_names');
function nifty_class_names($classes) {
if(is_page('page-slug-here')){
$classes[] = 'nifty';
}
return $classes;
}
両方の組み合わせをお勧めします。 Paulの方法を使用するJavaScriptファイルを1つ作成します。それからwp_enqueue_scripts
を使ってそのメソッドを呼び出します。
最後にISが常に怠惰な方法です(これはお勧めしませんが、参考のためだけに説明しています)。
あなたのheader.phpであなたができること:
<?php if(is_page('page-slug-here')){
echo ('<script type="text/javascript" src="'. get_stylesheet_directory_uri() . '/js/my-nifty-custom.js"> </script>');
} ?>
WordPressは jQueryを "No Conflict" モードでロードします。 "$"エイリアスは機能しません。完全な "jQuery" - jQuery.$.ajax({...
を使用するか、jQueryドキュメントの例のようにスクリプトをラップしてください。
(function($) {
$(function() {
// more code using $ as alias to jQuery
});
})(jQuery);
これについての情報は Codexにもあります 。