管理画面に更新マニュアルのダウンロードページを作成

管理画面の左メニューに「マニュアルDL」というメニューを作成。
クリックするとマニュアルのダウンロードページが表示されます。

参考:WordPressの管理画面メニューに新しいオリジナルページを作成する方法 | WEB備忘箱

1.function.phpにコードを追加

2.ダウンロード用のページを「wp-manual.php」として作成し、テーマフォルダにアップロード

Posted in 管理画面カスタマイズ | Leave a comment

WordPressのサイトをまるごと複製コピーする

 Wordpressサイトを制作した時に、同じサーバー内にテスト用にもう一つ複製を設置することがあります。
運用していく中でテーマをいじる改変を行なう時に便利だったり、リテラシーの低いクライアントさんの練習用とか。(サーバーの容量には注意)
DuplicatorというプラグインがWordPressのデータを丸ごと複製できてとても便利なのですが、php のバージョンが5.3以上でないといけません。あるクライアントのサーバーでは、残念ながらphp5.3以下だったので、Duplicatorは使えませんでした。

ということで、ファイルとphpMyadminを頼りに複製したのでメモです。
データベースを直接扱うので、初心者の方には向きません。自己責任でやれる方のみ参考にして下さい。

手順

http://example.com/xx/に設置したWordpressをhttp://example.com/xx_test/に複製する。

1.バックアップを作成

  1. ファイルのバックアップ:Wordpressを設置したフォルダを丸ごとダウンロード。
  2. データのバックアップ:phpMyadminでデータベースをまるごとエクスポート。

2.複製用のデータベースを作成。

  1. データベースの作成は利用しているサーバーのマニュアルで確認。
  2. 複製用のデータベースを新たに作成。

3.config.phpを書き換えてファイルを複製用のディレクトリに全部アップロード

  1. ファイルのバックアップでダウンロードしたフォルダの中のconfig.phpのデータベース名、ユーザー名、パスワードを変更。
  2. すべてのファイルをアップロード。
  3. 各ファイルやフォルダのパーミッションが最適なものになっているかどうか確認。

4.データベースのURLを書き換え

  1. phpMyadminで複製用のデータベースを選択。左側のテーブルの一覧から「wp_options」を選択。
  2. 「表示」タブをクリック。
  3. 「option_name」の列が「siteurl」になっている行の編集ボタンをクリックして、「option_value」の値を変更。
  1. 他にもURLが値として入っていたので、結局一括変換した。
  2. ルートからのパスが入っている場合もある。

5.管理画面にアクセスしてみる

  1. 管理画面にアクセスしてログイン。
  2. 「設定」>「一般」で一般設定画面の設定を確認。
  3. 「サイト名」をテスト用と分かるサイト名に変更。
  4. 「WordPress アドレス (URL)」は4のデータベースのURL書き換えで変更されているはず。
  5. 「サイトアドレス (URL)」もテスト用のURLに変更する。
  6. 「表示設定」で「検索エンジンがサイトをインデックスしないようにする」にチェックを入れて、検索ロボットをブロックする。

6.その他プラグインの設定でURLを入れてるところがあったら変更。

  1. クライアント用に左メニューを「Menu Editor」というプラグインで書き換えていたので、設定を変更。

7.投稿の中に入っているURLを変更する

  1. 左側のテーブルの一覧で「wp_posts」を選択。右側上部のデータベース名がテスト用のデータベース名になっていることとテーブル名がwp_postsになっていることを再確認。
  2. 「エクスポート」タブをクリックして、SQLをファイルに保存で、「wp_posts.sql」というファイルがダウンロードできます。バックアップとして保存しておきます。
  3. 「SQL」タブをクリックして、以下のSQL文を入力して実行。

    guidというフィールドにもパーマリンクや画像へのパスとしてURLが入っている。

8.カスタムフィールドの値に入っているURLも変更する

カスタムフィールドの値にリンクが入っている箇所があって変更できていなかったので、変更しました。カスタムフィールドの値がどのテーブルに入っているかはWordPressのデータベース構造を確認したところ、「wp_postmeta」というテーブルの「meta_value」というフィールドに入っています。

  1. 左側のテーブルの一覧で「wp_postmeta」を選択。右側上部のデータベース名とテーブル名を再確認。
  2. 「エクスポート」タブをクリックして、SQLをファイルに保存で、バックアップ用にエクスポート。
  3. 「SQL」タブをくりっくして、以下のSQL文を入力して実行。

    他にもプラグインが作成したテーブルなど、データベースに変換できてないところがないか確認するには、データベースを選択して、「検索」タぶをクリック。検索する単語や値に「/xx/」。検索条件は「正規表現」。テーブルを全選択で実行すると、「/xx/」が含まれているテーブルが分かるので、それぞれのテーブルを確認して、一括変換しておく。

ちょっと厄介だったのは、http://example.com/xx/にWordpressを設置していて、サイトURLをhttp://example.com/に設定し、カスタム投稿のURLがhttp://example.com/カスタム投稿スラッグ/になっていたり、固定ページなんかもhttp://example.com/zzzとかになっていたので、その部分の置換。

参考サイト:

以下、2つのサイトに大変お世話になりました。

WordPressサイトの複製を作る | Tips2ややめんどう | ビジネスサイト制作 世田谷教室 ワードプレスでホームページ作成

[WordPress] 投稿記事内の文字列をSQL文で一括置換 | しゃけろぐ

 

おまけの関連英単語

duplicate:重複する。複製する。繰り返す。

You can make a duplicate copy of WordPress site.

Create a duplicate of a specific full backup.

Posted in 全般 | Leave a comment

bodyタグのclassにページスラッグを追加する。

bodyタグのclassにページスラッグを追加する。
通常<body <?php body_class(); ?>>で色々なclassが追加されるのだけれど、cssでページごとのデザインを設定するときにはページスラッグがclassになっているととても助かる。

こちらの記事を参考にしました。
WordPressの body_class()にページスラッグの決定版 | terabenote.net
http://terabenote.net/archives/2079/

Posted in テンプレート作成 | Leave a comment

設定用固定ページからAdvanced Custom Fieldsの値を取得する

例えば、トップページやアーカイブページ用の設定を固定ページで作成し、その固定ページの編集画面のAdvanced Custom Fieldsで設定した値を取得する場合。

  1. 設定用の固定ページを作成し、Advanced Custom Fieldsでカスタムフィールドを設定する。(公開状態は非公開に)
  2. テーマの中で設定したカスタムフィールドの値を取得する場合は「get_field(‘フィールド名’,ページID)」で取得する。

例えば、固定ページで「メイン画像設定」というページ(ID=41、非公開)を作成。
Advanced Custom Fieldsで「mainimage」という画像アップロードのカスタムフィールドを作成。
index.phpにフルサイズで画像を表示したい場合は、index.phpの記述は以下のようになります。

同じ設定ページでリンクのリストをRepeatで設定した場合。
Repeatフィールド名「top_links」、SubFieldで、「top_link_name」(サイト名称、テキスト※フォーマットはNoFormatting)と「top_link_url」(サイトURL、テキスト※フォーマットはNoFormatting)を設定。

太陽ブログさんの以下の記事を参考にさせていただきました。

Advanced Custom Fields でスライドの設定ページを作る
WordPressでホームページ制作 太陽ブログ 

Posted in テンプレート作成, プラグイン, 使ってみたプラグイン | Tagged | Leave a comment

Advanced Custom FieldsのRepeaterの2件ごとにdivで囲う

Advanced Custom FieldsのRepeaterで設定した項目を出力するのだが、Repeaterで設定したサブフィールドの1セットをclass名boxというdivで囲み、さらにboxというdiv2個ごとにclass名rowというdivで囲う。

参照:
WordPress › フォーラム » 記事を決められた数毎にタグ(div等)で囲みたい
http://ja.forums.wordpress.org/topic/1101
5年前のフォーラム。今ではもっと違う書き方があるかもしれないけど。

プラグイン:
ACF { Repeater
http://www.advancedcustomfields.com/resources/field-types/repeater/

 

shingle.phpに記述

出力結果

Posted in 未分類 | 1 Comment

Advanced Custom Fieldsの画像を出力する

Advanced Custom Fieldsで作成したカスタムフィールドで、種類を「画像」にした時の画像の出力。フォーマットを画像IDにしてアップロード時に設定したaltなどを取得します。

私の場合、お客さまのスキルやaltの設定を忘れてしまいそうな時などには、画像のアップロード用のカスタムフィールドとalt用のカスタムフィールドを分けることもあります。
その場合は、画像のカスタムフィールドの出力形式は画像のURLとかにします。

Posted in テンプレート作成, プラグイン, 使ってみたプラグイン | Leave a comment

カスタム投稿のsingle.phpで、タクソノミーで条件分岐する

カスタム投稿の個別ページで条件分岐するには、single-(カスタム投稿名).phpで以下のように条件分岐させます。

こちらのサイトを参考にさせていただきました。
wordpress カスタム投稿のターム別(記事毎)にテンプレートの表示方法を変える | 
WEBデザイナーのしおり
http://msweb.moo.jp/wordpress/977/

 

Posted in テンプレート作成 | Leave a comment

Trust Formにページタイトルを初期値として入れ込む

ページ内に「このページは役に立ちましたか?」というミニアンケートを設置するのに、Trust Formを使用。1つのフォームを作成して、ほぼすべてのページの下部にフォームを表示。
どのページに対する回答かわかるようにするため、「ページ名」というテキストボックスを作成して、そこにページのタイトルを初期値として入れるようにした。

こちらのブログが大変参考になった。感謝。
Trust Formのフィールドに初期値を与える | notnil creation weblog
http://notnil-creative.com/blog/archives/2555
このブログで紹介されているのは、ページ内にフォームがあるわけではなく、ページの中の申し込みボタンをクリックしてフォームへ遷移する場合を想定している。クリックしたときにページタイトルをフォームのページヘ受け渡してやって、それを初期値としてフォームの中に入れてやるというもの。

今回のケースの場合は、ページ内にフォームが表示されている状態なので、そのページのタイトルを得るのは簡単。

フォームの設置はsingle.phpに下記のように記述。

trust-form-tpl-(formのID).phpに追加

ユーザーからは見えないほうが良いので、「ページ名」のテキストボックスを一番最後にしておいて、cssで非表示にした。

Posted in プラグイン | Leave a comment

投稿の承認用のユーザーを作成する

例えば、こんなパターンの時、

  • 弊社が制作とシステム運用を担当。
  • クライアントのA社が更新担当。
  • 投稿の内容についてはB社の承認が必要。
  • B社には管理画面は見せたくない。

承認の仕組みは色々な方法があります。

「wordpress post branch」というブランチが便利そうですが、カスタム投稿タイプへの対応などではカスタマイズが必要そう?(今のバージョンではどうなのか確認してないのですが)

今回は、以下の方法で。

  1. B社はプラグインで「承認者」権限を新たに作成。非公開記事を見られるように設定。
    プラグイン:User Role Editor(http://role-editor.com/
  2. A社は「編集者」権限で管理画面から記事を作成。非公開で更新してB社にURLをお知らせ。
  3. B社は、ログイン後サイトのトップにリダイレクトされる(管理画面は見えない)。
    プラグイン:Peter’s Login Redirect(http://www.theblog.ca/wplogin-redirect
  4. B社は、A社からもらったURLで非公開記事を確認。
  5. A社はB社から承認をもらったら、非公開記事を公開にする。

ブランチでの承認のほうが楽ですが、あまりリテラシーが高くない方や多数の方が確認する場合は、ちょっとアナログな手間をかけたほうが、使いやすいという時もあります。

Posted in 管理画面カスタマイズ | Leave a comment

ログイン画面のカスタマイズ

クライアントに納品するときには、ログイン画面もカスタマイズすることが多いです。
専用の管理画面って感じがするので、喜んでいただけます。

ログイン画面のロゴ変更

ログイン画面のロゴのリンク先変更

ログイン画面のロゴのtitle変更

Posted in 管理画面カスタマイズ | Leave a comment