WordPress」カテゴリーアーカイブ

WordPress PHP7にバージョンアップしたらエラー

HTTP500エラー

久しぶりにWPのダッシュボードにログインしたらPHP5.6は危険とのことでPHP7.1にバージョンアップしたらHTTP 500エラーで真っ白になり予期せぬ時間をとられてしまったので解決方法をまとめておきます。

デバッグモードに切り替えてエラー内容を確認する

wp-config.php

/**
 * 開発者へ: WordPress デバッグモード
 *
 * この値を true にすると、開発中に注意 (notice) を表示します。
 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
 */
define('WP_DEBUG', false); // trueに変更

Exec-PHPプラグインのエラーみたいです。
調べるとExec-PHPはもう使えないみたいでダウンロードもできません。
なのでとりあえずPHPのバージョンをPHP5.6に戻してダッシュボードにログインしExec-PHPを停止、削除を実行。

Exec-PHPを削除したことにより全ての記事内のPHPタグが仕様不可に!!

画像やURL等はドメインが変わっても動くようにSITE_URLと言う自分で定義した定数を使っていました。これがすべて使えなくなり、リンクは飛べなくなり画像は表示されない事態になりました。

更に調べてみるとショートコードを使うのが一般的との事でショートコードをJavaっぽく作成
functions.php

function getSiteURL() {
    return SITE_URL;
}
add_shortcode('SITE_URL', 'getSiteURL');

※SITE_URLはconst.phpという別ファイルを自分で作ってindex.phpでrequire_onceしています。SITE_URLの中身はhttps://office-goto.info/

これで記事内で[ SITE_URL]と記載するとPHP変数が使えます。
(SITE_URLの前に半角スペースを空けないとURLが展開されるため半角スペースを空けています。)
ただ記事数が多いものでデータベースをエクスポートして一括でPHPタグを[ SITE_URL]に書き換えてインポートし直しました。

PHP7.1にバージョンアップし動作確認後特に問題なく画像やリンクが機能しているため問題解決。

WordPress date関数でタイムゾーンがうまく表示されないときの対処法

ここではWordPressのdate関数でタイムゾーンがうまく表示されないときの対処法を解説しています。

wordpress_logo

wp-setting.php 設定

/wp-setting.php

// WordPress calculates offsets from UTC.
date_default_timezone_set( 'UTC' );

ここでデフォルトのタイムゾーンをセットしています。
デフォルトでUTCとなっていますので、日本時間にして9時間前が表示されています。
これを日本に時間に戻すにはJTCに直します。

/wp-setting.php

// WordPress calculates offsets from UTC.
date_default_timezone_set( 'JTC' );

設定しなおしたらこちらのソースで確認してみてください。

<?php echo date("Y-m-d H:i:s"); ?>

これでうまくいかない方はphp.ini、タイムゾーンの設定を確認してください。

date.timezone = Asia/Tokyo

WordPress 訪問済みのリンク色を変えない

ここではWordPressで訪問済みのリンク色を変えない方法について解説しています。

wordpress_logo

概観→テーマの編集→スタイルシート(style.css)
/wp-content/themes/twentytwelve/style.css

.entry-content a:visited,
.comment-content a:visited {
    color: #9f9f9f;
}

visitedで検索をかけて上記CSSが記述してある箇所を見つけてください。
訪問済みのリンクに色をつけるように設定してあります。

これをコメントアウトするか、idやclassなどのエレメントで指定して別途記述してください。

/*
.entry-content a:visited,
.comment-content a:visited {
    color: #9f9f9f;
}
*/

WordPress スパム対策 SI CAPTCHA Anti-Spamで画像認証

SI_CAPTCHA_Anti-Spam

ここではWordPressでスパム対策、コメント欄に画像認証をつけるSI CAPTCHA Anti-Spamプラグインを紹介しています。

現在配布は終了しダウンロードできなくなっております。
こちらの記事をどうぞ
WordPress コメント 画像認証 セキリティ強化 SiteGuard WP Plugin
https://office-goto.info/wordpress/siteguard-wp-plugin/

ダウンロードはこちら
http://wordpress.org/plugins/si-captcha-for-wordpress/

プラグイン新規追加で「SI CAPTCHA Anti-Spam」検索でインストールできます。

プラグイン有効で特に設定することなく画像認証が追加されます。

WordPress サーバー・ドメイン移管

ここではWordPressでサーバー・ドメイン移管を行う方法について解説しています。

wordpress_logo

新サーバーに移すデータを全て落とす

旧サーバーでの作業

※WordPressとプラグインを最新の状態にしておいてください。

FTPなどでWordPressが設置されているディレクトリから全ファイルを落とします。
データベースの全テーブルをエクスポートします。

ローカル環境での作業

旧サーバーから落としてきたSQLファイルの編集

旧サーバーで使用していたドメイン名で検索をかけ一括で全て新サーバーのURLに書き換えます。

wp-config.phpの編集

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

/** MySQL データベースのユーザー名 */
define('DB_USER', '新サーバーの~');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '新サーバーの~');

/** MySQL のホスト名 */
define('DB_HOST', '新サーバーの~');

全て新サーバーのものに書き直してください。

新サーバーでの作業

WordPressのアップロード
旧サーバーのWordPressを新サーバーのWordPressを設置するディレクトリに全てアップロードします。

データベースのインポート
旧サーバーのSQLファイルを新サーバーのデータベースにインポートします。

ここで新サーバーのwp_optionsテーブルのopstion_id番号1番option_valueのカラムで旧サーバーのドメインになっているところを新サーバーのドメインに書き換えます。

新サーバーのWordPressの確認

旧サーバーで画像パスなどを直書きの箇所を直していきます。
この作業が時間がかかるので先に旧サーバーで直書きの箇所を変数にするなどと確認する事をお勧めします。