【最新記事】⇒仮公開開始(2019/02/07)

JavaScript動いた!

色々と参考にさせてもらったけど、ひとまずJavaScript動かす事ができた。

WordPress内の投稿や固定ページの記事の中ででも、ソース直書きにして、scriptタグを
divタグで囲む事で正しく認識させる事ができた。

selectのオブジェクトをgetElementByIdで取得し、選択されたindexを取得するっていう関数をdivタグの中のscriptタグ内で記述。
select分には、onChangeフックにその関数を指定。
今回は、選択された項目名(ラベル)を、options[index].textで取得してテキストボックスに貼り付けるっていう処理だけど、とにかくちゃんと動いた!

JavaScriptはこんな感じ

<p>
<div><script>
function select_top_level() {
  var pulldown1 = document.getElementById( “top_level_kind” ) ;
  var selected_kind = pulldown1.selectedIndex ;
  document.getElementById( “text1” ).value = pulldown1.options[selected_kind].text ;
}
</script></div></p>

フォームはこんな感じ

プルダウンリスト1

<form name=”pulldown1″>

<select id=”top_level_kind” name=”kindbig” onChange=”select_top_level()”> ショートコード1 </select>

<select name=”kind”> ショートコード2 </select>

<input id=”text1″ type=”text” value=”” placeholder=”文字列”> <textarea name=”testarea” rows=”5″ cols=”40″> </textarea>

<input type=”submit” value=”検索”>

</form>

今日はJSファイルを作る

昨日は疲れすぎて何もできなかったけど、今日はちょっと頑張ろう。

まず、DBを少し見直した。
DBから1つ目のプルダウンの候補を持ってくるようにしているが、今までは「公開/非公開」のフラグを流用していたのを、見出し用の項目をちゃんと用意する事にした。
現状プルダウンに使うのは1回層のみだけど、見出し項目にもレベルを設ける事にした。
でも、画面とかも複雑になるので、当面は最上位階層のみを取ってくるようにする。

あわせて、3桁だった分類を4桁に変更。
これで階層にも余裕ができて、並びも融通が利くようになった。
SQLもそれにあわせて、対象のカラムを変更してみた。
ひとまずうまくいったので、昨日やる予定だったJavaScriptの作成に入ろう。

予定としては、JSファイルを作り、そこにプルダウンで項目を選択した際のフック関数などを定義したり、Ajax用の関数を作って格納しておく。
・JSファイルはどこに置くのか?
・JSファイルはどこで読むのか?(ヘッダ?フッタ?)
・function.phpの変更
このあたりをやらないといけないと思われる。

まず、手始めに1つ目のプルダウンを選択したら、その項目を逐次テキストボックスに表示させる処理を記述してみよう。それに必要な関数、フック処理、ファイルの準備、読み込みなどの一連の準備を完了させるのを目標にする。

AdsenseとSearch Console

Adsenseの当サイトへの設定と、Search Consoleの活性化を実施。
まだ色々作成中な事もあって、検索エンジンへの通知をオフにしていたのを、一昨日深夜にオンに変えた影響もあって、サイトマップが正しく認識してもらえなかった。

24時間ほど経った今朝、サイトマップに関してチェックしてみたらほぼ全てがOKになっていたが、個別ページ(検索画面)だけ別フォルダにしていたせいか、警告になっていた。

プラグイン側に、通知に含める設定をして再度チェックしたら今度は正しく認識され、とりあえず現状のページは全てRobotでのトレイルができるようになったらしい。

さて、現状では自動広告を出すように設定はしているものの、実際このブログがどれだけ観られているのかはまだわからないし、広告なんぞでないのではないだろうか?
スマホからみると表示されているようでもあるが…。

と思いAdsense側をチェックしてみると、「表示」にこのサイトが含まれていた。
まぁ多分全部私だろうけどw
ここ、他の人が見に来るようだったら、本当に画像その他早急に変えないとだな。
ただ、どんな画像用意していいんだか、いまいちわかんないんだよな。

後、固定ページいくつかつけてるけど、不要な部分は表示させないようにしといた方がいいのかもしれないなぁ…。

どれを表示させて、どれを隠すのかってのも、まだ良くわかっていないし。

連動するにしても…

やっぱり全て自動的に連動ってのは、それだけ通信頻繁に起こるわけで、PCならともかくスマホでは困るよね。

毎回取りに行くのは良く無いから、リスト項目全体は初期表示時に全てとってきておいて、ページ内のインスタンスで保持、第一リスト選択に従って、JSで動的な絞込みを行う。
こうすれば、リストいじった所で特に通信もでないしOKだよね。

その方向で行こうか。

第一リストを複数選択可能にしようかとも思ったけど、ニーズ的に必要かわからんし、単一選択でまずは進めることにしよう。

選択リストが2行だけ

SELECTのsize属性を指定しても、2行分しか表示されないのはなんでなんだぜ?

恐らくどこかのCSSで制限されてんだろうけど…。

まぁ今はそこはおいて、リストの連動を試そう。

1つ目の選択リストで選択された値を元にSQLで絞り込むか、SELECTした値をプログラムで絞り込むか…だけど、WHERE句生成するのと、絞込みの処理どっちが重いかな…。
とりあえず、プログラム側で絞り込むのでやってみるか。

その前に、1つ目のリストで選択する度にリスト更新するってのは、通信コストどれくらいかかるもんだろう?とりあえずやってみるか。

Adsense関連

このままここで収益発生させていくつもりは無いけれど、必要な設定があるのであればちゃんとやっておかないといけないので、色々と設定を進めてみる。

とりあえず、AdsenseとConsoleが正しく動作するかどうか。
検索結果画面に広告が出るようになるのか、でないのか。
そもそも、それはポリシー違反とかになるのかならんのか?ってあたりを検証しなければいかん。

ひとまず種々の設定はしてみたので、後は状況見るしかないかな。

ただ、ホームページ自体の設定が著しく「仮」だから、画像含め早急に見直ししないといかんw
ひとまず、グラブルのプレイ画面とか、そういうのでごまかすしかないかw

プルダウン完成

DBにあるデータをプルダウンリストへ表示させるのが完成。

$wpdbというインスタンスを経由させると、$wpdb->prefixが自動的にテーブル名に付与されるというのに気付くのが遅かった。
全てのテーブルを$wpdb経由でCREATEしていれば、そんな事無かっただろうけど、実際はツールで別途テーブル作成までしているので、プレフィックスはつけてなかった。

今後もWordPressで動かしていくのなら、テーブル名称変更するのがいっちゃん楽なんだけど、どうしようかな。回避方法があるのかな。

ちなみに、$wpdbインスタンスを経由せずにテーブル名直書きで、prepare()が正しく動作するのか?ってのは次の課題。
いくつかの入力項目に連動させて選択肢を絞り込むとかやりたいから、prepare()はやらないといけないと思うし。(直入力無くせばいいんだろうけど)

いずれにせよ、$wpdbを使う使わないで結構差はでそうだから、もうちょっと色々と確認しないといけないな。