WordPressマルチサイトの移設手順

★備忘録:さくらサーバの例

1.先にサイトデータの移設を済ませておく

daftomiken.hatenablog.com

2.旧サーバから移設するWPのSQLファイルをダン

3.新サーバへ2でダンプしたSQLファイルをインポート

4.phpmyadminでDBに接続しURLとパスを変更

wp_blogs
wp_site
それぞれのURLとパスを新サイトに合わせて変更。

5.wp-config.phpを編集

データベース情報の変更

// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'my_site');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'username');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'password');

/** MySQL のホスト名 */
define('DB_HOST', 'localhost');

マルチサイトの記述変更

define ('WP_ALLOW_MULTISITE', true);

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/test/';
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/test/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

6.「Search and Replace」でドメイン・パスの置換

旧URLやパスを、新しい内容に置換します。
使い方の参考
WordPress移行時にURLをSQLで直接一括置換はダメ! 「Search and Replace for WordPress Databases Script」を使おう | infoScoop開発者ブログ

7.WordPressにログインして、パーマリンクを更新する(htaccessの再生成)

個人的によく使うWordPressプラグイン23個まとめ

ブログ系ではなく一般サイトを作るときに入れることが多いプラグインまとめです。
あれ何使ったんだっけという備忘録として。

私の定番系

Show Current Template

現在閲覧中のページにどのテンプレートが使用されているのかを管理バーに表示させることができます。今一体どのテンプレート使ってるんだ…という場合に便利。

WP-PageNavi

ページャーといえばこれ。wp_queryを使う場合はページャーを入れる位置に以下を挿入。$the_queryの変数はwp_queryの書き方によりける。

<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(array('query' => $the_query)); } ?>

Breadcrumb NavXT

パンくず。自動でパンくずを挿入したいならこれ。

<div class="breadcrumbs" typeof="BreadcrumbList" vocab="http://schema.org/">
    <?php if(function_exists('bcn_display'))
    {
        bcn_display();
    }?>
</div>

TinyMCE Advanced

記事編集画面のボタンを拡張するプラグインです。標準のエディタでは足りないという場合はこれ。
私がよく使う設定エクスポート↓
管理画面ダッシュボード→設定→TinyMCE Advanced→管理「インポート設定」から設定可能。

{"settings":{"toolbar_1":"bold,italic,blockquote,bullist,numlist,alignleft,aligncenter,alignright,anchor,table,link,unlink,undo,redo,image","toolbar_2":"formatselect,fontsizeselect,strikethrough,outdent,indent,removeformat,hr,charmap,forecolor,backcolor","toolbar_3":"","toolbar_4":"","options":"menubar,advlist,contextmenu,advlink,fontsize_formats","plugins":"anchor,table,advlist,link,importcss,contextmenu"},"admin_settings":{"options":"importcss,no_autop","disabled_editors":""}}

WP Total Hacks

よく使うのは下記の部分

  • faviconの追加
  • apple-touch-iconの追加
  • wlwmanifestとxmlrpcの削除
  • バージョン情報をheadから削除
  • すべてのピンバックを拒否
  • リビジョンコントロール
  • セルフピンバックを停止
  • ログイン画面のロゴを変更
  • アップデート通知の停止

※リビジョンを0にするとプレビュー機能に支障がでるので1以上にしておいたほうが無難

All in One SEO Pack

SEO対策でお馴染み。ソーシャルメディア拡張機能をONにして、OGPタグやTwitter Cardにも対応します。

Advanced Custom Fields

標準の使い勝手の悪いカスタムフィールドを抜群に使いやすくしてくれるプラグイン。有料の「Repeat Feald」を購入すれば繰り返しフィールドも追加できます。カスタムフィールドを入れ込むサイトをよく作るなら、フル機能の有料ライセンスを買ってもいいくらい便利です。好きです。
カスタムフィールド出力 基本

<?php
	$field = esc_html(get_field('field_name'));
	if( !empty($field) )  {
		echo $field;
	}
?>

カスタムフィールド出力 画像の設定をIDにした場合

<?php
	$image = esc_html(get_field('field_name'));
	$size = 'thumbnail';
	echo $image['url'];
	echo  $image['title'];
	echo  $image['alt'];
	echo $image['sizes'][ $size ];
?>

カスタムフィールド出力 繰り返しフィールド(有料)の場合

<?php
	$rows = get_field('repeater_field_name');
	if ( $rows ) {
		foreach($rows as $row) { 
			echo esc_html($row['sub_field']); 
		}
	}
?>

Adminimize

権限ごとに管理画面をカスタマイズできます。

Custom Post Type UI

カスタム投稿タイプを扱う定番プラグイン。サイト制作ではカスタム投稿タイプを使うことがほとんどなので、ほぼ必ず入れています。

Custom Post Type Permalinks

カスタム投稿タイプのパーマリンクを変更できるプラグイン

MW WP Form

確認画面付きのお問い合わせフォームを作るならこちら。
有料のアドオンを購入するとより便利です。

Head Cleaner

HTMLを最適化して表示できます。設定のせいでWPの挙動がおかしくなることもあるので注意。

記事の移行系

WP CSV Exporter

WordPressの記事をCSV形式でエクスポートします。

Really Simple CSV Importer Media Plus

CSVで記事をインポートする「Really Simple CSV Importer」のアイキャッチ対応版。
※サーバの状況と記事数によってはインポートしても動いてんだか動いてないんだかよくわからないことがあります。

アイキャッチ

Auto Post Thumbnail

アイキャッチなんていちいち登録すんの面倒くさいという更新担当さんのためのプラグイン。自動的に記事から画像を取得してアイキャッチに設定します。

管理画面カスタマイズ系

Admin Columns

f:id:daftomiken:20160908162430p:plain
投稿ページ一覧や、固定ページの一覧画面の列をカスタマイズできます。
コメントやタグ使わないからいらない、順番を入れ替えたい、カスタムフィールドの項目を列に追加したい…という時にfunction.phpをいじらなくて済むのでありがたいです。

WP Admin UI Customize

投稿画面のメタボックスで不要なものを非表示にできるプラグイン

ウィジェット

Image Widget

ウィジェットに画像設定機能を追加します。

Remove Widget Titles

ウィジェットの管理上タイトルないとわかりにくいけれど、入れたら表示されて困るという場合に。
タイトルの前に!をつけるだけです。

権限系

User Role Editor

権限を増やしたり、既存の権限の範囲を調整したりと細かく設定できます。

セキュリティ系

WP-DB-Backup

手軽にWordPressのデータベースをバックアップできるプラグイン

SiteGuard WP Plugin

管理画面をIP制限してしまえば良いですが、いざというときのためにWordPressのセキュリティを強化できるプラグインブルートフォースアタック対策にどうぞ。

Protect uploads

アップロードディレクトリにインデックスファイルを生成し、ディレクトリ一覧表示を抑制します。

WordPressの移設時に使うUNIXコマンドメモ

sshを使ってWordPressを移設するときの手順メモ

さくらサーバ→さくらサーバへの移設前提。(もしくはssh使えるサーバ→ssh使えるサーバ)
Macなのでターミナル使用

1. 元のサーバのデータをzip圧縮する

ssh接続

ssh username@example.com

パスワードを聞かれたら入力してEnter

cdコマンドで圧縮したいディレクトリの位置まで移動

cd /home/example/www

lsコマンドで現在位置確認

ls

zipコマンドでディレクトリごと圧縮

zip -r example.zip example(ディレクトリ名)

ファイル量が多い場合はzip生成まで時間かかるのでちょっと待つ

zipが生成できたら、コマンド叩くのがちと面倒なのでFTPで接続してダウンロードしてくる。
ダウンロード終わったらサーバ上のzipファイルは削除しておくこと。

2. 移設先サーバでzipを展開する

移設先のサーバにFTPで接続してzipファイルをアップロードしておく
移設先サーバにsshで接続して、cdコマンドでzipのある場所まで移動

unzipコマンドで解凍する

unzip example.zip

ちょっと待って解凍が終わったらzipファイルは削除する。

3. パーミッションの変更

zip解凍するとhtmlやphpファイルなんかのパーミッションが705になってるので604に変更する。下記コマンドで現在位置以下のファイルを一括パーミッション変換かけれる。

find . -type f -exec chmod 604 {} \;

もちろんwp-config.phpは400にする。

液晶ペンタブレット用2本指グローブのつけ心地比較

f:id:daftomiken:20160803214012j:image

液晶ペンタブレットでのお絵描きを便利にする道具の一つに手袋があります。今まで安い綿手袋の指部分を切って使っていましたが、より滑りが良い手袋がないか探したところ、三種類の2本指グローブを見つけました。

今回は完全主観のランキング形式で2本指グローブをご紹介します。

 

第3位 Parblo PR-01

f:id:daftomiken:20160803214957j:image

私(普通の手袋ならMサイズ)には少しばかり大きめでした。指先はやや余るくらいです。液晶画面の滑りは良く、第2位のHUIONとはほぼ同じ素材です。価格が最も安く購入時700円とお手頃なのですが、個人的に小指側の縫い目が致命的でした。細かいことですが、絵を描くときに凸凹の引っ掛かりが気になってしまいます。

 

第2位 HUION

f:id:daftomiken:20160803221336j:image

3位のParbloと滑り具合は同様です。素材はほとんど変わりないようです。手にはフィットしますが指が余りました。切って使えば気にならない程度です。価格はParbloよりやや高めですが、手が出しやすい960円です。小指側に継ぎ目がなく引っ掛かりがないのが良いですね。

HUION ペンタブレットと液晶ペンタブレット用グローブ 左利きと右利きも使用できる Cura CR-01

HUION ペンタブレットと液晶ペンタブレット用グローブ 左利きと右利きも使用できる Cura CR-01

 

 

第1位 Smudge Guard 2本指グローブ

f:id:daftomiken:20160803221103j:image

ワコムストアで購入可能です。amazonには置いてないのでご注意を。

2位、3位の素材か作りが違うのか、液晶に手を滑らせたときの具合が一段階上です。手のフィット感も良く、指に余りもできませんでした。当然小指側に継ぎ目はありません。サイズはSとMがあります。

値段は2,160円と高めなので購入にためらってしまいそうですが、流石Wacomというつけ心地ですので店頭で触れる機会があれば試してみると良いでしょう。

残念ながら、2016年8月3日ワコムストアでは現在品切れ中です。

ワコムストア/公式 

 

以上、腱鞘炎防止と摩擦防止に2本指グローブはいかがですか?

WordPressで超強引に年度別リストと記事一覧を表示する

PHPスキルが無いため、かなり強引にやりきった時のメモです。

やりたかったこと

f:id:daftomiken:20160730094108p:plain

条件

  1. 固定ページ(page.php)を使用
  2. 年度別アーカイブリスト
    2016年3月の場合は2015年度として表示する
  3. 一覧ページでは4月1日〜翌年3月31日までの記事を表示
  4. 見出しに年度を表示
  5. 10件ごとにページ分割

 

参考サイト

www.webopixel.net

d.hatena.ne.jp

 

参考サイトで引っかかった点

「wp_get_archives()」を年度別にする方法と、記事一覧を年度別にする方法がネット上に掲載されていたものの、次の点がわからず断念しました。

  • 2016年3月の投稿があるのに2015年のリストが表示されない
  • 年度別アーカイブにしたいページと、通常の年別アーカイブ表示にしたいページがあるので「wp_get_archives()」で取得する内容を全部年度別に変更してしまいたくない。

 

今回強引にやりきった方法

★page.php

 

★年度別アーカイブリスト
  1. 「wp_get_archives()」で月別アーカイブを取得(format=custom、echo=0でカスタムできる状態にする)
  2. 取得した値を配列に変更
  3. 1月〜3月は-1して前年の扱いにする
  4. 「年●月」をpreg_replace()で削除
  5. array_filster()で空の配列を削除
  6. array_unique()で重複項目を削除
  7. array_values()で歯抜けの配列を整頓
  8. 配列をforeachで回す
  9. URLに「?y=年」のパラメータを追加
★記事一覧
  1. 取得たパラメータが空の場合は記事を非表示
  2. URLの「?y=年」が有効になった時にリストを非表示、記事を表示するよう切り替える
  3. WP_Queryの条件にdate_query(after、before)を追加し、URLのパラメータを反映
    'after' => '2016/4/1',
    'before' => '2017/3/31 23:59:59'
    ↑こうなるようにする
  4. ページ分割は「WP-PageNaviプラグインを使用