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

【解決済】WordPressで投稿内容が表示されない、急に投稿の本文だけ表示されなくなった時の対処法。文章真っ白、ブログの内容が消えた

ワードプレスで急に投稿の本文だけ表示されなくなった時の対処法

元々は

タイトル、サイドバー、コンテンツもちゃんと表示されていた。

ある時から、気づくと

コンテンツだけ消えていた。

公開日やカテゴリは見えているが、その直後にフッターがきている。

ソースを覗いてみると、やはりコンテンツは消えている

だから、原因はCSSではない。
 

WordPressアップデートのタイミングで表示されなくなっていた

本文真っ白になってると気づいた数日前に、

WordPressの自動アップデートが走っていたので、タイミングはほぼ確実にこれだろう。
 

ある日突然見えなくなった場合は、根本原因はプラグイン

結論から言うと、今回は「Ktai Style」というプラグインが原因だった。

Ktai Style
有効化 | 削除
携帯電話用に軽量化したページおよび簡単な管理インターフェースを提供します。

となっているやつだ。

WordPressのバージョンが上がったので、

PHPを7系に半ば強制的に変更させられた。

そのあおりを受けて、プラグインのKtai Styleが原因で内容が表示されなくなってしまった。

Ktai Styleはそこまで必要なプラグインではなかったので、今回はプラグインごと削除して終了。

【解決済】さくらの共用サーバーで運用中のWordPressでPHPバージョンを7に上げても「PHPの更新が必要です」が消えない時の対処法

PHPバージョンが5系(5.6.3など)だとWordpressにPHPの更新が必要ですと表示される。それを、7系(7.3.6など)に上げても、なぜかこの表示が消えてくれない時の対処法


PHPの更新が必要です
サイトが安全ではないバージョンの PHP を実行していることを検出しました。
PHP とは何ですか ? サイトにどう影響しますか ?
PHP は WordPress の開発や保守に使用されているプログラミング言語です。PHP の新しいバージョンはより高速で安全なため、アップグレードするとサイトのパフォーマンスに良い影響を与えます。
PHP の更新についてさらに詳しく (新しいタブで開く)

と書かれてたメタボックスが表示される。

PHPバージョンを7.3.xにちゃんと上げても、メタボックスが消えない場合がある。

さくらの共用サーバで確認済み。
 

実際にPHPバージョンは上がってないのか?

サーバーで確認しても、PHPを走らせて確かめてみても、実際にはPHPバージョンは7系に上がっているようだ。
 

じゃあアラートが消えない原因はなに?

まず、.htaccessの中身を確認してみよう。

FTPソフトなどで.htaccessをDLして確かめてみるとこんな感じ。

Action myphp-script /php.cgi
AddHandler myphp-script .php .html

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# BEGIN WordPress 以下は普通のWordpressの記述。

上の Action myphp-script /php.cgi これが問題の元凶。

次に php.cgi の中身 を確認してみる。これもFTPソフトでDLしてみる。

#!/bin/sh
exec /usr/local/php/5.6/bin/php-cgi
#exec /usr/local/php/5.4/bin/php-cgi

原因これでした。exec は外部コマンドの実行で、ここが、php5.6になっちゃってる。
php5.4はコメントアウトされているので関係ない。

しかし、行自体を削除してしまうと、さくらサーバーでは、php が動かなくなる。つまりWordPressは動かない。

という訳で、 ↓↓↓

さくらサーバーの場合、バージョンを指定せずにphpを動かすには下記のコードを追加。

exec /usr/local/bin/php-cgi

一応元の記述もコメントアウトで残すと、 ↓↓↓

こんな感じでいいと思う。

#!/bin/sh
#exec /usr/local/php/5.6/bin/php-cgi
#exec /usr/local/php/5.4/bin/php-cgi
exec /usr/local/bin/php-cgi

php.cgiを変更して、FTPでアップロードして上書きしたら、「PHPの更新が必要です」は消えました。

プラグインを使わず、WordPressでタグクラウドの表示の順番を制御する。ランダム、使用頻度順など

WordPressで、タグクラウドがいつも同じものしか表示されないのでランダムで表示してみた

WordPressのタグは限りなく投稿が可能。

でも、デフォルトの状態だと登録名順でしか表示されないので、どれだけたくさん入力しても、最初に登録した30個しか表示されない。
これをランダムで表示させるようにしたい。

functions.phpへの記述で、使用頻度で抽出させることはできる
//タグクラウドの順番を使用頻度で
function my_tag_cloud($args) {
 $myargs = array(
 'orderby' => 'count', //'name'タグ名(初期値), 'count'使用回数
 'order' => 'RAND', //'ASC'昇順(初期値), 'DESC'降順, 'RAND'ランダム
 'number' => 50 // 表示数 '0'と書くと全てのタグを出力
 );
 $args = wp_parse_args($args, $myargs);
 return $args;
}
add_filter( 'widget_tag_cloud_args', 'my_tag_cloud' );

これで、使用頻度の高い順に50個抽出して、それをランダムに並べなおして表示。

とすることができる。

ただし、これだと、使用頻度が低いモノまで含めて50個をランダムに抽出して並べることはできない。
 

使用頻度に関わらず、全てランダムに抽出する方法は?

number0 にして無制限に全部抽出してからランダムに並び替える。

wp-includes/category-template.php

wp_tag_cloud() のソースが書いてあるので、その辺をいじくって、出力する個数を50個にする。

で抽出。

とする必要がある。