WordPress

WordPressでパーマリンクを行った際の.htaccessの記述

WordPressでパーマリンクを変更する場合サーバーがmod_rewriteモジュールの使用を許可してないと使えません。 mod_rewriteモジュールとは mod_rewriteモジュール とはURLの書き換えなどを行うモジュールです。 WordPressでは人にわかりやすいような特定のURLでアクセスをしても機械的なURLへ書き換えを行うことができます。 これがパーマリンクの変更です。 例えば、「http://localhost/wp_green/?p=123」を人にわかりやすい「http://localhost/wp_green/sample-post/」とすることができるわけです。 このときWordPress内部では「http://localhost/wp_green/sample-post/」を「http://localhost/wp_green/?p=123」と変換しています。 このときに使用する仕組みがmod_rewriteです。 mod_rewriteを有効にするにはWebサーバのApacheに対して設定を行う必要があります。 「Apache」の設定を行う場合「httpd.conf」で行いますが、このように一部の機能を変更したい場合はその機能を使用するフォルダに.htaccessファイルを置いてその中に記述を行います。 .htaccessのmod_rewrite  >>続きを読む

moreの使い方〜WordPress

記事の途中に<!–more–>を入れるとそれ以降の記事が省略されて、全文表示ページへのリンクが設定された「続きを読む」となります。 この表示は投稿ページの表示やアーカイブのページで複数の記事を表示させる場合に使用されます。 <!–more–>の挿入方法は「投稿の編集」でテキスト編集の場合はツールバーの「more」をクリックします。ビジュアル編集の場合はをクリックします。 この機能を利用するにはテンプレートファイルの「the_content()」に次のように引数を指定するだけです。 注意 投稿するときに<!–more–>クイックタグの “more” の前に空白があると <!– more –> は正常に動作しません <!–more–> クイックタグは single.php などの単一投稿を表示するテンプレートでは動作せず無視されます 参考ページ テンプレートタグ/the content

bloginfo( $show )の使い方

bloginfo( $show )のパラメータ 一部のパラメータの使用が非推奨になったり、廃止になったりしています。特に’stylesheet_directory’と’template_url’ や’template_directory’が非推奨になっていますので注意してください。 パラメータが使用できるのものかどうかもう一度確認しておきましょう。 テンプレートタグ/bloginfo 2014年9月時点で使用できるパラメータ 以下はWordPress Codex 日本語版のテンプレートタグ/bloginfoの一部を引用 ‘name’ 管理画面の「設定 > 一般」で設定された「サイトのタイトル」を表示するものです。このデータは wp_options テーブルの “blogname” レコードから取得されるものです。 ‘description’ 管理画面の「設定 > 一般」で設定された「キャッチフレーズ」を表示するものです。このデータは wp_options テーブルの “blogdescription” レコードから取得されるものです。 ‘admin_email’ 管理画面の「設定 > 一般」で  >>続きを読む

query_postsとページナビの問題 〜アクションフックでpre_get_postsを使う

query_postsの問題点 query_postsを使用したページでページナビを設置したり、ページ送りを設置すると必ず問題が生じます。 次のページに進む事ができなかったり、404が表示されたりするものです。 *この記事は当初のものから大幅に書きかえました。 解決方法はネットに多くみられますが、どれも完璧にはいかない場合が多いですね。 色々やってみて結論として、アクションフックでpre_get_postsを使う方法が一番良さそうです。 query_postsで不具合がでる理由 まずはquery_postsでうまくいかないその原因を少し探ってみたいと思います。 主な原因はquery_postsを使用するとページナビが今何ページ目かわからなくなるらしいのです。 なぜでしょうか? 簡単な例 ここではquery_postsを使用して投稿ページの表示件数を3件にする場合を例にして考察します。 ダッシュボードの設定から「1ページに表示する最大投稿数」での調整はサイトのページ全てに適用されますので使えません。 この設定はとりあえず「10件」の表示にしておくものとします。 表示件数3件はquery_postsの引数を’posts_per_page=3’とします。 コードは次のとおりです。 query_postsを使用した場合はループ終了後に忘れないようにwp_reset_  >>続きを読む

ショートコードの使い方

固定ページなど投稿ページにphpを埋め込むことはできません。 functions.phpに関数を記述しておいてショートコードを利用してphpを使用することができます。 functions.phpに関数を記述後その次にadd_shortcode()を付け加えます。投稿ページには[ ]ブラケットを使用して関数を実行します。 functions.php記述例 日にちを表示する例 投稿ページ側の記述 [today_shortcode]

ウィジェット 表示

ウィジェットを表示するにはfuctions.phpにコードの記述が必要です。 fuctions.php記述例 ‘name’ => ‘sidebar’でsidebar部分を適当な名前に変更して使用します。 デフォルトではウィジェットのマークアップはliになります。’before_widget’ と’after_widget’ でliをdivに変更しました。 表示テンプレート側の記述 詳細な記述例

カスタムメニューの作成

カスタムメニュー作成手順 カスタムメニューを使用するためにはfunctions.phpにカスタムメニュー表示の関数を記述します。 そうするとWordPressのダッシュボードの外観メニューに「メニュー」の項目ができます。 functions.phpにカスタムメニューの関数を記述 WoedPressのダッシュボードの外観メニューに「メニュー」の項目ができる。 メニューの設定を行う CSSの再編集 functions.phpの記述 functions.phpの記述例 register_nav_menus()とはWordPress関数のひとつです。 これでカスタムメニュー機能を有効にして連想配列でメニューの名前(インデックス)と説明(値)を指定します。 header.php側の記述 wp_nav_menu() を使用してテンプレートにナビを呼び出します。 header.php側の記述例 navタグで囲んでid=”global-nav”にします。 navメニューにidやclassを付けたくない場合には以下をfunctions.phpに付け加えます。 ダッシュボードの外観メニュー 「global」などの名前をつけて「新規メニュー作成」ボタンをクリック 左側メニューの「固定ページ」欄の「すべて表示」をクリックして全てを表示する。 メニューにしたい項目にチェックをつけて「  >>続きを読む

文字コードの設定

WordPressでの文字コードの設定でダッシュボードの「設定」→「表示設定」で「文字コード設定」がありましたがVer3.5 から設定がなくなったようです。 本などで学習していると探してしまいますよね。

検索ボックスの作成〜カテゴリ別で検索など

検索機能はウィジェットを使用すれば簡単ですが、少しカスタマイズしようとなると自分で作成しなければなりません。 ノーマルな検索ボックスの作成とその仕組み サーチボックスはinputタグで簡単に作成できます。 問題はWordPressの検索機能の仕組みです。一見難しそうですが、仕組みを利用するのはアドレスをうまく使えば簡単にできます。 検索用のURLはサイトアドレスの後に「?s=検索キーワード」をつけるだけです。あとはWordPressが検索してくれます。 この仕組みさえ解れば自作のサーチボックスを動かすことができます。 具体的なコードです。 ポイントはactionにphpでecho home_url(); としてサイトアドレスを呼び出します。php終了後に/を入れています。 ここのサイトだと itstudio.co/ となります。 次に「?s=検索キーワード」部分はname=“s”とすることでsubmitボタンをクリックするとgetでinputタグに入力された値が検索キーワードとなって送られます。 ここのサイトだと 「itstudio.co/?s=検索キーワード」の状態になってくれます。 つまりinput type=”search” name=“s”のサーチボックスに入力した値が検索されることになるのです。 上記のコードのサーチボックスは使い回しをできるように  >>続きを読む

the_date()とthe_time()の使い分け

WPテンプレートタグにある関数 the_date()とthe_time()の使い分けです。 the_date()を使用すると同じ日に投稿した場合一方のみ日付表示されます。 the_time()の場合はそれぞれに日付表示されます。 the_date()を使用した例 the_time()を使用した例