[Lolipop]WordPressで記事の更新時に、403エラーが出るときの対処法
LolipopでWordPressを運用していると、プラグインや記事の更新時に、下記の403エラーが出ることがあります。 403 Error 現在、このページへのアクセスは禁止されています。 サイト管理者の方はページの権限設定等が適切かご確認ください。 これは、LolipopのWAF(Web Application Firewall)が誤動作している可能性があります。 WAFが原因でエラーが出たかの確認方法 エラーが出たとき、WordPressのバグなのか、それともLolipopの問題なのか、念のために確認しておきたいですよね。 発生した403 Errorが、本当にLolipopのWAFによる…
続きを読む
[WordPress]下書きとして保存されたPost IDを、無理やり別の記事として再利用する
WordPressでは、記事の内容を更新したとき、更新前の履歴をwp_postテーブルに保持しています。 更新するたびに、記事のIDが消費されていくのですが、履歴として保存されているPost IDを別の記事用として、無理やり再利用するための更新SQLです。SQLで強制的に記事のステータスを書き換えるのは本来の使い方ではないので、試してみる場合は必ずテスト環境を作ってから実験してください。 — データベースに保存されたid=1のレコードを、記事(post_type=’post’)として再利用する、 UPDATE wp_posts SET post_status = ‘draft’, comme…
続きを読む
[WordPress] while( have_post() )ループでループカウンタの取得方法は?
WordPressの記事一覧をループしているときに、最初の1件目のみ処理を変えたいときがあります。 このような場合は、$wp_queryオブジェクトが持っているcurrent_post変数に、ループカウンタが保存されていますので、これを利用すると便利です。 また、post_count変数に件数が保存されているので、post_countを比較することで最後の時のみ特定の処理を行うことができます。 current_post変数は0から始まることに注意が必要です。 具体的には、have_posts()のループ内に、下記のような感じで判定式を書けばOKです。 if( have_posts…
続きを読む
[WordPress]DBが分かる人に$wp_queryと$wp_the_queryの違いを説明する
WordPressでは、クエリ結果(≒表示すべき記事の情報)を、$wp_queryと$wp_the_queryの2つの変数で管理しています。 この2つの違いは下記のとおりです。 メインクエリの結果:$wp_the_query 現在処理しているクエリ結果: $wp_query 具体的には以下のプログラムのコメントのような感じで、$wp_queryの値が変わっていきます。 // カテゴリ1の記事最新5件を検索 // この時点では、$wp_the_queryと$wp_queryの内容は同じ query_post(‘cat=1&order=DES&number=1’); // 取得した…
続きを読む
[WordPress]リクエストURLで指定されるクエリストリングの一覧
WordPressでは、?p=123のような形でブラウザからのリクエストパラメータ(クエリストリング)を受け付けることができます。 標準インストールされたWordPressが処理できるパラメータの一覧は下記のとおりです。 m p posts w cat withcomments withoutcomments s search exact sentence calendar page paged more tb pb author order orderby year monthnum day hour minute second name category_name tag feed aut…
続きを読む
[WordPress]動画ヘッダーの自動再生を止める方法
WordPressではver.4.7から動画ヘッダーというカスタムビデオヘッダの機能があります。 これを使用すると、記事設置された動画に対する機能ですが、動画が自動で再生開始されていまします。 これを自動再生させたくない場合は、以下のJavaScriptコードをページに記述しておけばよいです。 仕組みとしては、ページがロードされたときにwp-custom-header-videoのidがあるタグを探し、autoplay=”false”に設定を差し替えています。 $( document ).ready( function() { $( document ).on( ‘wp…
続きを読む
[WordPress]ダッシュボードへリンク集を出すプラグインを自作する
WordPressを使っているとダッシュボードにちょっとした情報を表示したくなる場合があります。 そこで、WordPressにログインした直後に表示される管理画面へリンク集を設置できるプラグインを作成しました。実際は、指定されたHtmlを表示しているだけなので、リンク集に限らず好きな情報を出力できます。 「プラグインの自作」と書くと敷居が高そうですが、function.phpに2つ処理を書くだけなので割と簡単に作成できます。phpのプログラムを書いた人であればすぐわかるレベルですし、プログラムの経験がなくてもhtmlさえ分かれば本記事を元に好きな内容を表示させるようなカスタマイズも簡単です。 …
続きを読む
[WordPress]REST APIを使って記事の取得を行う
WordPress4.7から取り込まれたREST API v2を使った、記事へのアクセス方法です 記事の検索 直近の記事10件を取得 http://example.com/wp-json/wp/v2/posts トップページのの末尾に”/wp-json/wp/v2/posts”を付ければ、記事がjson形式で取得できます 2ページ目を取得(11~20件目) http://example.com/wp-json/wp/v2/posts?page=2 page=nパラメータを付ければnページ目の値が取得できます 1度に20件取得する(最大100まで指定可能) http://…
続きを読む
[WordPress] Rest APIに関する情報サイト一覧
[WordPress] Rest APIに関する情報サイト一覧 オフィシャルのドキュメント REST API Handbook 予備知識 WP REST API のドキュメント内の用語集を簡単に翻訳する 基本的な用語の説明 WP REST API ドキュメント Discovery 既に存在するREST API対応のWordPressで、何のAPIが使えるかの調べ方。 WordPress 4.7リリースでの仕様変更 wordpress 4.7でREST-APIの仕様が変更になったので合わせる WordPress 4.7リリース前の記事 WP REST APIをいろいろ触ってみるハンズオン@Wor…
続きを読む
[WordPress]Lightningテーマでパンくずリストに記事名を出さない
WordPressのBootstrapベースのテーマである、Lightningでパンくずリストのカスタマイズを行います。 個別記事ページにを表示させた場合、パンくずリストの末尾に記事タイトルが表示されます。PCで表示したばあいは違和感がないのですが、スマホで表示させたときにタイトルをパンくずリストにタイトルが表示されているとファーストビューに表示される情報量が少なくなってしまいます。またパン屑リストのすぐ下に、h1タグの記事名が出るため、同じ情報が連続表示されてしまい違和感があります。 このため、パンくずリストに記事名を出さないよう修正してみます。 Lightningテーマでパンくずリストから…
続きを読む
[WordPress]All in one SEO packでカスタムフィードからTwitterカード画像をセットする方法
WordPressでSEO対策や、Facebook/Twitterなどのソーシャルサイト向けのタグを一括設定できるプラグインとしてAll in one SEO packがあります。 このプラグインでは、OGPという記事の要約や画像などをSNSサイトへ正しく伝えるためのメタタグを容易に設定することができます。WordPressでECサイトなどを管理している場合、Twitterカードに商品の画像を表示できるためページへのアクセスアップが期待できます。OGPの仕様では「meta property=”og:image…」というメタタグでページのメイン画像を指定できます。Twit…
続きを読む
[WordPress]Jetpackの関連記事表示で3カラム表示を1カラム表示に変更する方法(Related Posts)
WordPressで多くの人が利用しているプラグインのJetpackには、関連記事を表示させる機能が用意されています。この関連記事は、特に設定をしなくても精度の高いお勧め記事を出してくれるのが便利なので利用している方も多いかと思います。 デフォルトでは3カラム表示されるのですが、これを1カラムで表示したい場合は、下記のcssを追加で記載すればよいです。2カラムで出したい場合はwidthを50%にして下さい。 #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { width:100%; }#jp-rel…
続きを読む
[WordPress]Ligithingテーマの記事ヘッダをカスタマイズする
WordPress向けのシンプルな、BootStrap使用テーマにLigithingがあります。今回は、Ligithingで記事ヘッダのレイアウトをカスタマイズする方法を説明します。 今回カスタマイズするヘッダは、下記画像の赤枠の部分です 記事ヘッダのレイアウトは、個別記事/記事一覧ともに、module_loop_post_meta.phpファイルで制御しているので、このファイルを変更します。実際にカスタマイズする場合は、Ligithingテーマを直接編集するのではなく子テーマを作成してから修正してください。 記事の公開日を消す module_loop_post_meta.phpを開き、下記の…
続きを読む
[WordPress]shortcodeで記事タイトルや、カスタムフィードの内容を取得する方法
shortcodeで記事のタイトルを取得する WordPressでは、ショートコードを使用することで、phpプログラムの出力結果を記事中に埋め込むことができます。ショートコードを提供するプラグインのメソッド内で記事のタイトルを取得したい場合、get_the_title()を使用します。 function.php function func_showTitle() { return "この記事のタイトルは[" . get_the_title() . "]です"; } add_shortcod…
続きを読む
WordPressの更新で”別の更新が現在進行中です。”エラーが出るときにすべき事
「別の更新が現在進行中です」エラーが出る理由 WordPressの更新を行った際に、下記のような”別の更新が現在進行中です。”エラーが出る場合があります。 これは、直前にWordPressの更新を行いエラーが出たとき、直後に再実行すると発生するものです。二重で更新処理が行われないようWordPressの内部でロック処理が行われています。 通常であれば、15分放置した後に再実行すれば問題なく更新が行えます。 「別の更新が現在進行中です」ロックを今すぐ解除する方法 直ぐに再実行したい場合で、MySQLのデータベースにアクセスできる場合は下記の手順でこのロックを強制的に解除で…
続きを読む
WordPressの更新で”Maximum execution time of 30 seconds exceeded “エラーが出たときにすべき事
WordPressの更新を行うときに、”Maximum execution time of 30 seconds exceeded”エラーが出る場合があります。 これは、WordPressが使っているphpの設定で、プログラムの実行時間の上限が30秒に制限されているためです。WordPressの更新では大きなファイルサイズのダウンロードが発生するため、30秒の制限に引っかかっています。 php.iniを更新して、制限時間を延ばす このような場合、php.iniを変更可能な場合は、設定を変えることで対応可能です。xamppを使っている場合、ファイルははC:\xampp\p…
続きを読む
WordPressにおけるフック処理の仕組みとは?
WordPressのフックとは何か? WordPressにおけるフックとは、何でしょうか? フックというのは、WordPressがページを表示する過程の特定のタイミングで、事前に登録された処理(関数)を実行することができる機能です。ほかのフレームワークでいうところのイベントハンドラ、イベントリスナに相当するものです。 フック機能を使うことでWordPressがページを表示する過程の特定のタイミングで、処理を追加したり変更したりすることができます。 WordPressではプラグインの仕組みがありますが、プラグインの作成者はこのフック処理を利用することで、標準のWordPressの処理を書き換える…
続きを読む
[WordPress]Custom Post Type UIでタグとカテゴリをカスタム投稿タイプへ追加する方法
WordPressではCustom Post Type UIプラグインを使用することで、簡単にカスタム投稿タイプを作ることができます。 作成したカスタム投稿タイプに対して、通常の投稿と同様に、タグやカテゴリを作りたい場合の手順を説明します。 カスタム投稿タイプで、カテゴリを管理できるようにする CPT UIのメニューより、 Add/Edit Taxonomiesをクリックします。 Taxonomiesの読み方は”タクソノミー”で、分類方法という意味です。 タクソノミーの追加タブのBasic Settingより、Slug,Labelの指定を行います。 次にAddition…
続きを読む
[WordPress]SiteGuard WP Pluginを使用時、管理画面に入れなくなった時にすること
WordPressで、管理画面のセキュリティを向上するためのプラグインにSiteGuard WP Pluginというものがあります。WordPressの管理画面に入るためのURLはデフォルトだとwp-adminなのですが、SiteGuard WP Pluginを使うとこのURLを変更することが可能です。 この機能は、通常は便利なのですが、バックアップから他のサイトにWordPressを移動させた際に、この機能のせいでDBからデータを戻しても、管理画面にログインできなくなってしまう場合があります。 管理画面へのログインURLをwp-adminに戻す方法 このような場合は、WordPressのDB…
続きを読む
Web Designing: WordPress特集で紹介されていたプラグイン一覧 2014年2月号:
Web Designing 2014年2月号の特集は、”WordPressスキルアップのヒント”でした。 この中で紹介されていた、実運用されているサイトで利用しているプラグイン一覧が良かったので、メモしておきます。 紹介されていたサイト一覧は、下記のページでリンクが紹介されています。 http://book.mynavi.jp/wd/2014/02-feature1.html 現場目線で選んだプラグイン10選 WP SiteManager WP Total Hacks Easing Slider "Lite" TinyMCE Advanced Add…
続きを読む