まず、このカテゴリの投稿のスタック全体を約 100 回読んだような気がします。タイトルは重複しているように聞こえますが、WP 3.5+ との連結全体まで、尋ねられた質問に対して読んだすべてのソリューションを試したことを意味します。
実際のjqueryスクリプトとURLを参照すると、私のスクリプトはWPでうまく機能します。私はどこでもこれを実装するのはひどい方法だと読んでいるので、組み込みのWPライブラリと非競合ラッパーを使用しようとしています。私は、ベアボーン ローカル InstandWP インストールで WP 3.6 を実行し、デフォルトの Twentythirteen テーマを使用し、他のプラグインは使用しません。
\\ Works great if I use these in WP 3.6
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
前に言ったように、私は正しいことをしようとしているので、多くのエンキューおよび/または登録 (解除) オプションで実験を行いました。これまでのところ成功したものはありません:
- Concatenate_scripts = false
- jQueryの登録(解除)
- エンキュー (Codex で参照されている適切な jQuery フックを使用)
もちろん、$ を jQuery などに書き直します。しかし、firebugコンソールが教えてくれるように、私の問題は上り坂のようです: Uncaught ReferenceError: jQuery is not defined
だからここにいます。私のコードは WP 以外では問題ありませんが、適切なコーディング方法で WP のフロントエンド プラグインに使用できるようには思えません。
\\ Loading the JS library & CSS
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/redmond/jquery-ui.min.css" />
\\ Definition of the datepicker rule
<script>
$(".full_date").datepicker({
showOn: 'button',
buttonText: 'Here',
dateFormat: 'DD, dd MM yy',
altFormat: "yy-mm",
altField: ".year-month",
onClose: function (dateText, picker) {
// getDate returns a js Date object
var dateObject = $(this).datepicker("getDate");
console.dir(dateObject);
// Call Date object methods
$("#date input").val(dateObject.getDate());
$("#month input").val(dateObject.getMonth());
$("#day input").val(dateObject.getDay());
$("#year input").val(dateObject.getFullYear());
}
});
</script>
\\ Some HTML
<h1>Date Picker</h1>
<form class="date-picker">
<label>full date</label>
<input type="text" class="full_date" value="" />
<label>year month</label>
<input type="text" class="year-month"/>
</form>
<p id="day">Day of the week: <input name="day" type="text"></input> </p>
<p id="month">Month: <input name="month" type="text"></input></p>
<p id="date">Date: <input name="date" type="text"></input></p>
<p id="year">Year: <input name="year" type="text"></input></p>
それが助けになるなら、私はjsFiddleにすべてを持っています
WP 3.6+ で正しい方法でコードを設定するための構文を教えていただけないでしょうか。
ここまでお読みいただき、誠にありがとうございました。グレッグ
アップデート
これが更新されたコードです。まだエラーがあります:「Uncaught ReferenceError: jQuery is not defined」。
<?php
add_action('wp_enqueue_scripts', 'load_my_scripts');
function load_my_scripts(){
wp_enqueue_script('jquery-ui-datepicker', '/wp-includes/js/jquery/ui/jquery.ui.datepicker.min.js', array('jquery'));
wp_register_style('date-picker', plugins_url('includes/jquery-ui-1.10.3.custom.min.css',__FILE__), true);
}
?>
<script type="text/javascript">
(function($) {
$(document).ready(function($){
$("#datepicker").datepicker();
});
});
</script>
<p>Date: <input type="text" id="datepicker" /></p>
ここでライブを見ることができます:
完全なプラグインはこちら
更新 2
しばらくして、コードに問題がないことに気付きました。プラグイン フォルダーの 1 レベル上に配置するだけで済みました。この「防弾」の例をダミーのプラグインとして作成しました。そこから、関数と add_action のスニペットが eplugin フォルダーのルートにある必要があることがわかりました。
それが誰かを助ける場合に備えて、私が使用したテストコードは次のとおりです:
<?php
/*
* Plugin Name: Hello World
*/
add_filter( 'the_content', 'tfr_the_content' );
function thisisonlyatest() {
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui-datepicker','http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/redmond/jquery-ui.min.css' );
}
add_action("wp_enqueue_scripts","thisisonlyatest");
function tfr_the_content( $content ) {
return $content . '<p><input type="text" id="datepicker" value=""/></p>';
}
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#datepicker').datepicker({
dateFormat : 'yy-mm-dd'
});
});
</script>
プラグイン フォルダーにフォルダーを作成します。そこに空のphpファイルを作成し、そのコードを貼り付けます。テスト用のワードプレス インスタンスを起動し、そこから必要に応じてカスタマイズします。
ご協力いただきありがとうございます。これが他の人にも役立つことを願っています
グレッグ