あすたま のすべての投稿

【解決済】さくらの共用サーバーで運用中の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個にする。

で抽出。

とする必要がある。

SANGOで、投稿のカテゴリーを複数登録し、ちゃんと複数カテゴリー表示させる方法 WordPress BuddyPressカスタマイズメモ

WordPressのサンゴテンプレートで記事投稿のカテゴリーを複数選択しても、1個しか表示されない件

サンゴのテンプレートでカテゴリーを複数個選択しても…

左上のオレンジの楕円の部分がカテゴリ名だが、
↓こんな感じで、1個目のカテゴリーしか投稿記事の画面では表示されない

これを、↓こんな風に、ちゃんと複数個表示させる。

 

functions.phpへの記述

色々な記述方法が考えらえるが、元々のSANGOの記述をできるだけ踏襲する形で書く。

//カテゴリーを記事一覧に複数表示
function output_catogry_link() {
 $cat = get_the_category();
 if (!$cat) {
  return false;
 }
 if ($cat) {
 $i = 0;
 foreach( $cat as $category) {
 $catId = $category->cat_ID;
 $catName = esc_attr($category->cat_name);
 $catLink = esc_url(get_category_link($catId));
 if ($catLink && $catName) {
  echo '<a class="dfont cat-name catid' . $catId . ' cat-multi' . $i . '" href="' . $catLink . '">' . $catName . '</a>' ;
  }
  $i = $i + 1;
  if ( $i >= 8 ) {
   break;
  }
  }//foreach
 }//if($cat)
 }

カテゴリーがある分だけ取得して、ソースとして吐き出されるので、ソースはこんな感じ。

<a class="dfont cat-name catidXX1 cat-mult0" href="カテゴリー1へのリンクURL">1のカテゴリー名</a>
<a class="dfont cat-name catidXX5 cat-mult1" href="カテゴリー5へのリンクURL">5のカテゴリー名</a>
<a class="dfont cat-name catidXX6 cat-mult2" href="カテゴリー6へのリンクURL">6のカテゴリー名</a>
...

classにclass に “cat-multi$i” ($iは変数でカテゴリのー数0から数字が順番に入る)

cat-multi数字 にCSSで配置を指定してやればいい。

なお、スペースの関係上、今回は上限を8個としている。
 

CSS (管理画面→外観→CSS編集→追加CSS)への記述

.cat-multi0{
 top: 3px !important;
}
.cat-multi1{
 top: 27px !important;
}
.cat-multi2{
 top: 51px !important;
}
.cat-multi3{
 top: 75px !important;
}
.cat-multi4{
 top: 99px !important;
}
.cat-multi5{
 top: 123px !important;
}
.cat-multi6{
 top: 147px !important;
}
.cat-multi7{
 top: 171px !important;
}

で、こんな風になる。

今回は上から下に並べているが、色を変えたり、横にずらしたりと色々できるはず。