WordPressはどうやって動いているのか?①
- 2019.09.19
私はよくWordPressを使ってサイトを作りますが、正直どういう仕組みで動いているのかはよくわかっていません。 せっかくなので、ソースコードを追って行ってどのようにページを表示をしているのかを調べてみようと思います。 index.php まず最初に呼び出されるのは、WPが設置してあるディレクトリにあるindex.phpです。 ここでは、同ディレクトリのwp-blog-header.phpを呼び出 […]
自由を追い求めるブログ
私はよくWordPressを使ってサイトを作りますが、正直どういう仕組みで動いているのかはよくわかっていません。 せっかくなので、ソースコードを追って行ってどのようにページを表示をしているのかを調べてみようと思います。 index.php まず最初に呼び出されるのは、WPが設置してあるディレクトリにあるindex.phpです。 ここでは、同ディレクトリのwp-blog-header.phpを呼び出 […]
サイトを制作していると、スクロールバーの幅を知りたいときがあります。 今回はJSを使用して画面のスクロールバーの幅を取得する方法を紹介します。 コード const scrollbarWidth = window.innerWidth - document.body.clientWidth; console.log(scrollbarWidth); 参考 JavaScriptでスクロールバーの幅を調 […]
今回はWordPressで記事本文の抜粋を取得する方法について説明します。 WordPressにはget_the_excerpt()という本文の抜粋を取得する関数があります。 この関数はデフォルトで110文字(マルチバイト文字)を取得し110文字を超えていたら最後に[…]を表示する設定になっています。 特にこだわりがなければこのまま使えばいいのですが、抜粋する文字数を変更したい場合もあると思います […]
今回はWordPressでスラッグと投稿タイプから投稿オブジェクトを取得します。 投稿タイプの部分は配列でも指定できます。 また、第2引数の指定次第で戻り値のタイプを変更できます。 該当するものがない場合はnullが戻ってきます。 コード <?php // 単一の投稿を取得するサンプル $slug = 'slug'; $post_type = 'post_typ […]
今回はWordPressで投稿に紐づいたタームをタクソノミー名と投稿IDから取得します。 戻り値は(配列|false|WP_Error)のどれかです。 コード <?php $id = get_the_ID(); $tax_name = 'taxonomy_name'; $terms = get_the_terms($id, $tax_name); if ($terms) […]
WordPressで記事を取得する方法はいくつかありますが、取得するときには毎回DBに問い合わせるため無駄な問い合わせはできる限り減らしたほうがいいです。 よくnew WP_Query()で記事を取得したりしますが、その場合URLがリクエストされたときとテンプレートファイル内でWP_Query()を呼び出したときの合計2回のDBへの問い合わせが発生していることになります。 今回は'pre_get_ […]
WP_Queryで記事を取得してきたときに、ループ終了後に呪文のように書いているwp_reset_postdata()という関数があります。 さらに、この関数に似ている名前のwp_reset_query()という関数もあり、どっちを使うのかわからなくなってしまう時があります。 この記事ではどちらの関数を使うのが正解か、さらにそれぞれの関数が何をしているのか調べてみました。 結論 まず結論からいうと […]
JSでウィンドウリサイズ時の処理を書くと、リサイズしている間何回もその処理が呼び出されてしまいます。 今回はウィンドウリサイズが完了したら、処理を一度だけ実行するコードを書きます。 コード var timeOutId = 0; $(window).on('resize', function(){ if (timeOutId > 0) { clearTimeout(time […]
WordPressで記事を取得するときにカスタムフィールドの値で並び替えたいときがあります。 以下のコードでソートをすることができます。 コード <?php $args = array( 'post_type' => 'my_custom_post_type', 'meta_key' => 'age' […]
PHPで全角と半角の変換をするときの関数です。 コード $str = '123 aaa'; // 変換する文字列 $op = 'rn'; // オプション(デフォルトはKV) $converted_str = mb_convert_kana($str, $op); // 第三引数には文字エンコーディングを指定できる。 echo $converted_str; […]