AD5 WordPress Lab

コラム

Column オブジェクト指向プログラミングとは、コードでストーリーを語ること

オブジェクト指向プログラミングとは、コードでストーリーを語ること

「オブジェクト指向」 何年プログラムを書いていても、わかりやすく説明するのが難しい言葉ですよね。 最近、私なりにひとつの答えにたどり着いたので、 コードを交えて書いてみたいと思います。 オブジェクト指向って何というか、実装の方法論というより哲学みたいなもので、 オブジェクト「指向」というより、
Column WordPressにXMLサイトマップを独自実装するカスタマイズ

WordPressにXMLサイトマップを独自実装するカスタマイズ

WordPressに限らず、SEO対策に不可欠なXMLサイトマップ。 カスタマイズせずとも「Google XML Sitemaps」などのプラグインで瞬殺なわけですが、 多くのXMLサイトマッププラグインは、柔軟に設定できるように作られている分、 「このサイトでは要らない機能」がたくさん含まれることになるので、多少なりともリソー
Column WordPressの管理者アカウントがわからない・管理者パスワードがわからない時のサルベージ

WordPressの管理者アカウントがわからない・管理者パスワードがわからない時のサルベージ

WordPressのサイトを構築した制作者が廃業して、あるいは連絡が取れなくなって、管理者権限を持つWordPressユーザーアカウントがわからなくなった、なんてことはありませんか? 別の人が作ったWordPressを修正して欲しいと依頼され、WordPressのアカウント情報を貰ったが、編集者権限だった・・・クライアントはそれしか
Column WP_HTTP::request() で cURL タイムアウトエラーが発生する

WP_HTTP::request() で cURL タイムアウトエラーが発生する

[crayon-6623069a5173d959619548/] こんな感じで画像ファイルを取得していたんですが、何故か取得できていないものがあり、手動実行してみたところ、上記の var_dump() で以下のようなエラーが。 [crayon-6623069a51746387452511/] cURL リクエストがタイムアウトしている模様。 デフォルトは5000ミリ秒のようです。
Column MySQLの全テーブル全カラムをphpMyAdminのみで一括置換する

MySQLの全テーブル全カラムをphpMyAdminのみで一括置換する

そんなことが・・・できるのさ。 そう、Stored Procedure ならね。 [crayon-6623069a51b02661627351/] こんな感じで実行。 [crayon-6623069a51b0b693793236/] 使い終わったら消しておきましょう。 [crayon-6623069a51b0e916147513/]
Column Breadcrumb NavXT を停止して、パンくずリストを独自実装する

Breadcrumb NavXT を停止して、パンくずリストを独自実装する

WordPress にパンくずリストを表示させる鉄板プラグイン Breadcrumb NavXT 。 パンくずリストって意外と自力実装するのが面倒ですよね。 プラグインを使いたくなる気持ちもわかります。   しかし、パンくずリストの設定なんてそう頻繁に変更するものではありません。 管理画面から変更できる必要がない
Column WP Pagenavi を停止してページネーションを独自実装する

WP Pagenavi を停止してページネーションを独自実装する

ページネーションを実装する WordPress プラグイン WP Pagenavi 。 よく使用されているプラグインですが、個人的には全く理由がわかりません。 というのも、WordPress のページネーションは、 [crayon-6623069a522af168421741/] で実現できるからです。 テンプレートの wp_pagenavi() をこのタグに書き換えてし
Column All In One SEO Pack が重いので、停止して独自実装してみる

All In One SEO Pack が重いので、停止して独自実装してみる

WordPress サイトのSEO対策用プラグインとして鉄板の「All In One SEO Pack」ですが、これがなかなか重いんです。 WordPress の表示速度が遅い、と相談を受けた場合、大抵 All In One SEO Pack が入っており、P3 等で重いプラグインのモニタリングをしても、必ずこいつが上位に入ってきます。 非常に高機能なプラグイ
Column WordPressが遅いので、プラグインを停止しまくってみる

WordPressが遅いので、プラグインを停止しまくってみる

WordPress のサイトが重い・遅い原因の多くは、プラグインの過剰使用なのですが、 特に長い年月運用しているサイトだと、どのプラグインが止めても問題ないのか判断するのが、かなり難しくなります。 前の記事でご紹介した事例では、47個の有効なプラグインを11個まで減らしました。 プラグインを停止していく際の
Column WordPressが重い・遅いときは、まず「プラグインのスリム化」をしよう 〜調査篇〜

WordPressが重い・遅いときは、まず「プラグインのスリム化」をしよう 〜調査篇〜

WordPressが重い、遅い!? WordPressのサイトが重い、読み込みが遅いので高速化したい、という相談をよく受けます。 本シリーズでは、実際の高速化の実例を元に、事前調査から対応までの手順をご紹介します。 WordPressが遅い原因 経験上、WordPressが遅い原因の80%以上はプラグインの過剰使用です。 プラグイン
Column WordPressのドメイン変更やSSL化時のURL一括置換

WordPressのドメイン変更やSSL化時のURL一括置換

だいたいこれでいける。 [crayon-6623069a52ae5053587077/]
Column テーマ・プラグイン開発時のレガシーPHP(5.2.4〜5.5.x)への対応

テーマ・プラグイン開発時のレガシーPHP(5.2.4〜5.5.x)への対応

最近、プラグインの利用者さまから、プラグインの有効化時にSyntax Errorが出る、とお問合せをいただきました。 そんな馬鹿な、と思って公開中のソースで改めてテストしてみるも、PHP5.6系、PHP7.0系環境では問題なし。 まさかと思って、PHP5.3系のサーバを引っ張り出してテストしてみても、エラーは出ない。 最終
Column WordPressサイトにパンくずリストをプラグインなしで実装する

WordPressサイトにパンくずリストをプラグインなしで実装する

意外と大変なパンくずリスト WordPressサイトに限らず、SEOの面でも重要視されるパンくずリスト(breadcramb nav)。 WordPressでガチで実装すると意外と面倒ですよね。 個別投稿ページだけでも、 A. 標準投稿 HOME > 親カテゴリ > 子カテゴリ > 投稿名 B. 固定ページ HOME > 親ページ >
Column WordPressにログインフォームを独自に実装する

WordPressにログインフォームを独自に実装する

前回に続いて、ログインフォームを作成していきます。 ログインの基本形 ログインページのURLは、前回同様固定ページで作成します。 固定ページのスラッグを login とすると、page-login.php にフォームのHTMLを記述します。 [crayon-6623069a53530231629285/] 続いて functions.php 等に処理を記載します
Column WordPressに会員登録フォームを独自に実装する

WordPressに会員登録フォームを独自に実装する

前の記事で検討した仕様に従い、まずは会員登録フォームを作成していきます。 会員登録の基本形 フォームのURLは固定ページで作成しましょう。固定ページのスラッグを entry とすると、固定ページテンプレート page-entry.php にフォームのHTMLを記載していきます。 [crayon-6623069a53aa2260298277/] そして
Column WordPressで会員制投稿サイトを作る

WordPressで会員制投稿サイトを作る

先日、WordPressで簡単に会員制サイトを制作できるプラグイン WP LOYALTY を公開しました。 より機能を充実させるためのアドオンも順次公開予定ですが、ここでは、1から会員制投稿サイトを開発するためのポイントをご紹介します。 会員制投稿サイトに必要な機能 会員制投稿サイトを作成する上で、最低限必要なのは
Column デプロイの容易なWordPressテーマ構築

デプロイの容易なWordPressテーマ構築

配布用テーマならいざ知らず、WordPressに関わるほとんどの人は、特定の案件のためにテーマを開発し、そしてカスタマイズし続けるでしょう。 WordPressサイトの保守を行う上でネックになるのは、デプロイの複雑さです。 ファイルをアップロードするだけでは完結せず、新たに固定ページを投稿する、Advanced Custom Fi
Column WordPressテーマでMVCモデルを実現する

WordPressテーマでMVCモデルを実現する

WordPressのテーマ開発でMVCモデルを実現する。 これはある種のチャレンジです。 もっとも、モデルの役割は WP_Query クラスなどのWordPressの組込みクラスが担っているので、ロジックと表示をどう分離するかが、最大の焦点です。 それを実現しているのが、コアクラスの以下の部分です。 [crayon-6623069a54448
Column オブジェクト指向なWordPressテーマ設計

オブジェクト指向なWordPressテーマ設計

WordPressテーマといえども、PHPを書く以上はオブジェクト指向な実装がしたいものですよね。 前の記事で紹介した通り、私の functions.php は、以下の3行だけです。 [crayon-6623069a54a16198586640/] コアクラスである Mytheme の init() メソッドでは、まず、オブジェクト志向の恩恵を受けるため、オートローディン
Column フォームの送信データをDBに保存する

フォームの送信データをDBに保存する

前回作成したフォームに、送信データをDBに保存する機能を追加します。 送信データをDBに保存する方法は、以下の3種類が考えられます。 1. 投稿として保存する 2. コメントとして保存する 3. 独自のテーブルに保存する 送信データは個人情報を含むため、データ保護の観点からも考える必要があります。 上記の
Column WordPressにメールフォームを自力で実装する

WordPressにメールフォームを自力で実装する

WordPressにメールフォームを実装する優秀なプラグインは沢山ありますが、 ほとんどのプラグインは非開発者向けに導入しやすさを重視して作られているため、 例えば入力項目を動的にするなど、少し複雑なことをしようと思うと、 詰んでしまいます。 WordPressにはメール送信処理やデータの保存などを簡単に実装できる
Column WordPressテーマ・プラグイン開発時のセキュリティ対策

WordPressテーマ・プラグイン開発時のセキュリティ対策

WordPressのテーマやプラグインを開発、カスタマイズする際には、脆弱性を生まないよう、セキュリティ対策を十分に考慮する必要があります。 CSRF対策 管理画面内外を問わず、WordPressにリクエストを送信するフォームや、データを更新するAJAXを実装する場合には、CSRF対策を施しましょう。 リクエストを送信する
Column WordPressのプラグインを開発するときに知っておきたいこと

WordPressのプラグインを開発するときに知っておきたいこと

WordPressのプラグインを開発する際に、技術的な実装手法以外の面で知っておくべきことをまとめました。 ライセンスについての理解 WordPressはオープンソースのソフトウェアですが、オープンソース=どう使っても自由、というわけではありません。 WordPressは、GPLライセンスのもとで配布されています。 GPL
Column WordPressのテーマファイル構成を本気出して考えてみた

WordPressのテーマファイル構成を本気出して考えてみた

エンジニアの端くれとして、たかがWordPressテーマであっても、綺麗なモジュール設計がしたいわけです。 そこで、以前作ったサイトのテーマをモチーフに、テーマファイルを再設計してみました。 対象にしたサイトは、ユーザーが会員登録し、PDFコンテンツを投稿でき、ダウンロード結果を集計できるなど、そこそこ高機
 
ログイン
メールアドレス
パスワード
会員登録
お名前
メールアドレス
パスワード
購入手続き
カード番号
有効期限 (MM/YY)
/
セキュリティコード (CVC)