kentomurata のアーカイブ

Safariはdatalistには未対応

2016年8月18日

datalistを使うと、入力フォームで入力候補を表示することができます。 これはHTML5から新しく導入されたもので、Chromeでは表示できるもののSafariでは表示できないので注意が必要です。 ただ、以下のように書けば未対応のブラウザでのみ、入力フォームの下に文章が追加されるそうです。 ``` テスト ※入力フォームには、AAA、BBB、CCC などを入力してください。 ```
続きを読む

配列あれこれ

2016年8月2日

配列に関する関数でちょっとあまり見かけないものをいくつか見かけたのでメモしておきます。 #javascriptのslice# ``` var array = ['a', 'b', 'c', 'd', 'e']; var array1 = array.slice(1, 3); // ['b','c'] となる ``` ちょっとわかりくいですが、1+1番目のものから3番目までの要素を取得して新たな配列を作るようです。 #phpのarray_
続きを読む

get_post_customを使ってデータベース検索数を抑える方法

2016年7月21日

WordPressで、特定の投稿のidからその投稿に紐づくカスタムフィールドを取得したいときがあります。 get_post_metaという関数は投稿のidとカスタムフィールド名を指定すると、その値を取得することの出来る便利な関数です。 ただ、一つのカスタムフィールドを取得するならデータベース検索は少なくて済みますが、復数の取得がさらにfor文の中に入っていたりするとデータベース検索数はどんどん増えていきます。 ``` $post_infos = array
続きを読む

JavaScriptでクォート記号を二重に使いたいとき

2016年7月14日

JavaScriptで、シングルクォートの中でまたシングルクォートを使いたい場合にはエスケープをしなければなりません。 ``` 'value='hoge'&target='hogehoge'' ``` これを以下のように書き直します。 ``` 'value=\'hoge\'&target=\'hogehoge\'' ``` このように中で使いたいクォート記号の直前にバックスラッシュ(\)を書き加えることで正常なコードとなります。
続きを読む

google map 上で情報ウィンドウが表示された後すぐに消えてしまう

2016年7月12日

情報ウィンドウが表示された後、すぐに消えてしまうことがありました。 jQuery(document).ready(function($) { $.ajax({ type: 'POST', url: url, dataType: "json", data: { 'action': 'get_info',
続きを読む

wordpress新規投稿追加を特定の条件で弾く

2016年7月7日

wordpressで新規投稿追加画面から新しく投稿を追加する際に、特定の条件を満たしていないものの投稿を許可しない方法についてまとめました。 ``` add_action('admin_head-post-new.php', 'publish_admin_hook'); // 新規投稿画面でのみ関数を呼び出す add_action('admin_head-post.php', 'publish_admin_hook'); // 投稿編集画面でのみ関数を呼び出す
続きを読む

Undefined indexエラーが出ないようにする対処法

2016年6月30日

以下のようにforeach文を回して配列を作るとき、値に何も入らないまま配列ができてしまうことがあります。 ``` foreach ($posts as $post) { setup_postdata($post); $post_id = $post->ID; $post_customfields = get_post_custom($post_id); $array_post[$post_id] = array( 'hoge1'
続きを読む

拡張子の前に文字列を追加する

2016年6月27日

例えば、hoge.jpgというファイル名をhoge11.jpgという文字列にしたいときなど、以下の関数が便利です。 ``` $file_name = hoge.jpg; $new_file_name = str_replace(".jpg", "11.jpg", $file_name ); echo $new_file_name; ``` str_replace($string, $new_string, $hoge)は、$hogeという文字列の中の$
続きを読む

wp_enqueue_style,wp_register_scriptの使い方

2016年6月23日

wp_enqueue_style,wp_register_scriptは、WordpressにおいてCSSファイル、JavaScriptファイルを読み込む際に利用出来る関数です。ただファイルを読み込むだけでなく、その前に読み込んでおかなければならないファイルを指定したり、確実に最新のファイルが読み込まれるように指定することが可能です。 #関数の使い方# ``` wp_enqueue_style($handle, $src, $deps, $ver, $in_foot
続きを読む

タイムスタンプでブラウザキャッシュを回避する

2016年6月21日

cssやjavascriptの変更がキャッシュのせいでうまく反映されないことがあります(古い時点でのファイルをいつまでも読み込んでしまっているということです)。 これは、読み込むファイルの末尾にタイムスタンプを追加し、ファイルを更新するたびに確実に読み込むファイルを最新のものにすることで対応可能です。 ``` // $css_path は読み込むファイルのパス ```
続きを読む

Undefined offsetへの対応

2016年6月20日

Undefined offsetは空の配列を呼び出しているときに出てくるエラーです。 表では問題なく動いているコードでも裏ではたまにこのエラーが生じていることがあり、処理をする上での問題はないのですがエラーログの肥大化などの点から気づいたら一応修正するといいようです。issetで配列が空のときを弾いてから処理を行うようにするとこのエラーは出なくなります。
続きを読む

wordpressでデータベース検索数を減らす

2016年6月16日

基本的な内容ですがメモしておきます。 ``` foreach($rooms as $room){ $args_posts = array( 'post_status' => array('publish'), 'posts_per_page' => -1, 'meta_query' => array( 'key' => 'select_room', 'value' => $room, )
続きを読む

Google Mapで表示する情報ウィンドウのデザインをカスタマイズする

2016年6月14日

Google Map APIで地図上に表示する情報ウィンドウのデザインのカスタマイズは、マーカーの場合とは少し異なります。 マーカーのようにアイコンを指定することはできないようです。 ``` // 情報ウィンドウの中身の設定 var infoWindowOption = { position : position, // 座標(マーカーに紐付ける場合は必要なし) content : "ウィンドウ内に表示するテキスト" + 
続きを読む

Javascriptにおける非同期処理の扱い方

2016年6月9日

Javascriptでは基本的に各々の処理は非同期です。わかりやすく言うと実行順序を指定することができません。 例えば以下のようなコードがあったとします。 ``` console.log('1'); setTimeout(function() { alert('2'); }, 3000); console.log('3'); ``` このとき以下のように表示されます。 ``` 1 3 2 ``` つまり、上から順に実行されるのでは
続きを読む

カスタムフィールドの自動更新

2016年6月7日

独自の関数をフックしてカスタムフィールドを更新しようとする際、適切なフックを選ばなければいけません。 例えばwp_insert_post_data内ではupdate_post_metaは使えません。(ここでupdate_post_metaの処理が行われた後もう一度更新が行われるので無効になってしまいます。) ``` function update_hoge($data){ global $post; $post_id = $post->ID; up
続きを読む

Javascriptでのfor文のまわし方

2016年6月2日

PHPに慣れていると、Javascriptのfor文の扱い方に戸惑うことがあります。 以下のような書き方をされることが多いですが、このような書き方では連想配列には対応できません。 ``` for (var i = 0; i < Array.length; i++) { if(Array[i] == true){ ..... } } ``` 自分には以下
続きを読む

Google Map 情報ウィンドウの表示と非表示

2016年5月30日

Google Maps APIで情報ウィンドウを扱う際の表示と非表示についてです。特にcloseの処理を忘れると一度に複数の情報ウィンドウが表示されてしまうこともあるので注意が必要です。 ``` // mapで情報ウィンドウを表示するマップの指定、さらにマーカーと紐付ける際には第2引数でマーカーオブジェクトも指定 情報ウィンドウオブジェクト.open(map[, anchor]); // 閉じたい情報ウィンドウオブジェクトを指定 情報ウィンドウオブジェク
続きを読む

WordPressでのキャッシュの取り扱い

2016年5月24日

WordPressではTransients APIを用いることでキャッシュを利用することが出来ます。 以下にその基本的な方法をまとめます。 必要な操作は、データをキャッシュする、キャッシュされたデータを呼び出す、キャッシュを削除するの3つです。 #データをキャッシュする# データをキャッシュする際には、呼び出す際の名前、キャッシュするデータ、更新されるまでの期間を指定します。 ``` set_transient( $transient, $value
続きを読む

PhpStormでのGitHubの利用

2016年5月23日

コミットやプッシュなどGitの基本的な操作については、すべてPhpStorm内で行うことができます。 #ターミナルでの操作# まず以下の方法で準備が必要です。 ``` //  https://github.com/hogeで開発を行っている場合 $ cd {gitからcloneしているディレクトリ} $ git remote set-url origin https://{自分のGitHubのユーザー名}@github.com/hoge.git `
続きを読む

タクソノミーによって投稿を検索する

2016年5月19日

タクソノミーによって投稿を検索する方法について書きます。 ``` $args = array( 'post_type' => 'movie', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'genre', 'field' => 'slug', 'terms' => array( 'action', 'comedy' ),
続きを読む