SEO対策

Internal Link Buildingのバグ修正

Internal Link Buildingをインストールして使用していたら、記事ページが何も表示されない状態になりました。このページでは、そのときの対処法を紹介します。

Internal Link Buildingのバグ

エラー表示をしてみると、次のように表示されていました。

Fatal error: Uncaught Error: [] operator not supported for strings in /home/users/2/main.jp-iphonexcase/web/name/wp-content/plugins/internal-link-building-plugin/internal_link_building.php:704 Stack trace: #0 [internal function]: internal_link_building_blocks::returnblocks(Array) #1 /home/users/2/main.jp-iphonexcase/web/name/wp-content/plugins/internal-link-building-plugin/internal_link_building.php(674): preg_replace_callback('!(\\<a[^>]*\\>([^...', Array, ' <p>\xE5\xB0\x8E\xE5\x85\xA5</p>\n...') #2 /home/users/2/main.jp-iphonexcase/web/name/wp-content/plugins/internal-link-building-plugin/internal_link_building.php(118): internal_link_building_blocks::findtags(' <p>\xE5\xB0\x8E\xE5\x85\xA5</p>\n...') #3 /home/users/2/main.jp-iphonexcase/web/name/wp-includes/class-wp-hook.php(286): internal_link_building::filter(' <p>\xE5\xB0\x8E\xE5\x85\xA5</p>\n...') #4 /home/users/2/main.jp-iphonexcase/web/name/wp-includes/plugin.php(203): WP_Hook->apply_filters('<p>\xE5\xB0\x8E\xE5\x85\xA5</p>\n<...', Array) in /home/users/2/main.jp-iphonexcase/web/name/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 704

704行目の「$protectblocks[] = $blocks[1];」がおかしいと。

バグの対処法

そもそも「$protectblocks」は配列なのに、値「$blocks[1];」を代入しているところがおかしいと気づき、下記のように修正したら、しっかり動作するように。

static function returnblocks($blocks){
global $protectblocks;
$protectblocks = $blocks[1];
return '[block]'.(count($protectblocks)-1).'[/block]';
}
static function returnblocks($blocks){
global $protectblocks;
$protectblocks[] = $blocks[1];
return '[block]'.(count($protectblocks)-1).'[/block]';
}