wp_WordPress Popular Postsをquery_postsで出そうとしたらちょっと詰まった話。

WordPress Popular Postsは、ランキングをサイドバーや、ちょっとしたスペースにさっと出すには便利なプラグイン。それをquery_postsで出せたら、ランキング一覧ページの出来上がりだ。が。

レイアウトをテーマと合わせたいよね。

そこで出てくる欲求が、query_postsで出したい、ということ。ググるとストレートにやり方が表示されたのだが、とても助かった情報が2014年で、php7ではエラーが出たので調整した、という話。

 

ストレートにググるとココがでてきます。

http://hacknote.jp/archives/1303/

( ;∀;)すばらしい。

さっそくそのまま入れると、エラーが出てくる。イカ日記。

split()関数をpreg_split()に変更

Fatal error: Uncaught Error: Call to undefined function split() in ~~~」

split()、そんな関数、ないんだってさ。>調査。

http://php.net/manual/ja/function.split.php

警告 この関数は PHP 5.3.0 で 非推奨 となり、 PHP 7.0.0 で 削除 されました。

そうかそうか。
このページでは関数の代替が案内されています。
3つ候補がありましたが、一番上の「preg_split()」を利用します。

http://php.net/manual/ja/function.preg-split.php

二つの関数の違いを見てみると、

array split ( string $pattern , string $string [, int $limit = -1 ] )
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

中身事態は同じでいいような気がしてきた。

13行目付近。

そのまま関数を変更して様子を見る。
一覧は出るのに新しい警告文が登場。

「Warning: preg_split(): No ending delimiter ‘,’ found in~~~」

「No ending delimiter」とはなんぞや。

|д゚)<しらん。

基本、私はプログラマーじゃないのでわからないから調査。

https://teratail.com/questions/30924

あー。つまり、「/」を前後に入れなきゃいけないわけだ。

これでOK。

結論(php7版、WordPress Popular Posts のランキングを無理やりquery_postsで取得)

これで問題なく動いた。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です