WordPressでランダムに記事を表示させる。

2018年09月22日 正午の月齢:12.8  月名:十三夜  潮汐:中潮 月齢:12.8[十三夜] 潮汐:中潮
14時間前に投稿 | WordPress | コメントはありません

この記事を読むのに必要な時間の目安: 2分ぐらい

ふだんはカテゴリ別だったりアーカイブ別だったりで記事を表示させることが多いのですが、該当する記事がなかったときに表示される404ページが味気なさすぎるので、ランダムに記事を表示させてみたくなりました。

404.phpの中身はこんな感じです。

<?php get_header(); ?>

<div id="docuarea">
<div id="documents">

<div class="entry">
<h2 class="entrytitle">ページが見つかりません…</h2>
<p>お探しのページは存在しません。</p>

<h2 class="commenttitle">こんな記事はいかがですか。</h2>
<ul>
<?php query_posts('showposts=20&orderby=rand');?>

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink();?>"><?php the_title();?></a></li>
<?php endwhile; endif; ?>
</ul>

</div>

</div>
</div>
<?php get_footer(); ?>

これでランダムに記事を表示できます。「showposts=20」の値を変えると表示する記事の数が変わります。

こんなふうに表示されました。かなり古い記事が出てきて、なかなか面白いですねー。

WordPressで記事の中にPHPのコードを書くと、下書き保存もプレビューもできずに501エラー。

2018年09月19日 正午の月齢:9.8  月名:十日月  潮汐:長潮 月齢:9.8[十日月] 潮汐:長潮
4日前に投稿 | ネットワーク | コメントはありません

この記事を読むのに必要な時間の目安: 2分ぐらい

WordPressで同じカテゴリーの最新記事を数件表示させる方法を書いているとき、途中までは普通にプレビューや下書きとして保存できたのに、急にプレビューを開いたら501エラーの画面が開く現象、保存できなくなる現象が発生しました。

どうも記事内にPHPのコードを入力したあと、この現象が発生するようです。

WordPressではなく、サーバーがエラーを返すということはなんでかなとしばらく調べたところ、よく似た現象が起こった人の情報を発見しました。

読み進めていくと、いろいろと条件が見えてきました。

  1. エックスサーバーを使っている。
  2. WAF設定(不正なアクセスを検知し遮断するWebアプリケーションファイアウォール)を設定している。
  3. PHPのコードを書いたときだけエラーが出るので、何かのセキュリティ関係ぽい。

たしかに先日、WAFの設定をしました。せっかくあるのだからということで全機能をONに。むー、それが原因かー。

waf

さっそく、「コマンド対策」の箇所をOFFにして、しばらくしてからプレビュー・保存すると問題なくできました。10年以上使っているけれど、改めてエックスサーバーの機能のすごさを思い知った感じですー。


WordPressで同じカテゴリーの最新記事を数件表示させる方法。

2018年09月17日 正午の月齢:7.8  月名:弓張月(上弦)  潮汐:小潮 月齢:7.8[弓張月(上弦)] 潮汐:小潮
6日前に投稿 | WordPress | 1件のコメント

この記事を読むのに必要な時間の目安: 3分ぐらい

以前は「Similar Posts」というプラグインで関連するような記事を表示していたのですが、PHPのバージョンアップの際にプラグインを使うのをやめました。けど、やっぱり関連記事は表示させたいな、ということで、テーマに直接記述してみます。

参考にしたのはこれらのサイトたち。

それぞれのサイトで少しずつコードの書き方が違います。これらをもとに1件も記事がないときは「同じカテゴリの記事はありません。」と表示させ、時系列どおりに直近のものからタイトルを表示し、自分自身の記事は表示されないようにということで、こんなコードにしてみました。

1 2

EdgeとBingのかわりにFirefoxとGoogleを使いたい。

2018年08月30日 正午の月齢:19.1  月名:更待月  潮汐:中潮 月齢:19.1[更待月] 潮汐:中潮
3週間前に投稿 | Windows10 | コメントはありません

この記事を読むのに必要な時間の目安: 3分ぐらい

Windows2000には全然かなわないものの、Windows10はそれなりに使いやすいOSだと思っています(少なくともWindows7・8よりはマシ)。さて、Windows10のイヤなところに「何かとEdgeを使わせようとする」「何かとBingを使わせようとする」点があげられます。Edgeは機能がスカスカで使いにくいし(軽いけど)、Bingは的外れな検索結果ばかりだし、もうお腹いっぱい。「bing」と入力して「bing 削除」なんて検索候補が返ってくる時点で検索エンジンとして終わってるよね。

EdgeからFirefoxへ BingからGoogleへ

ところがこの2つは、Windows10に深く突き刺さっていて、なかなかしぶとい。完全に使わないようにしようと思うとひと手間必要です。今回はそのあたりをまとめてみました。

まずはEdgeをヤってしまいます。ふだんはFirefoxを使っていて、もちろん既定のアプリに設定しているのですが、コルタナから呼び出したり(コルタナもふだん使わないけど)、ロック画面に興味深いメッセージが現れたときにクリックしたり、そういうときには既定のFirefoxではなくEdgeがノコノコと嬉しそうに起動してきやがります。この対策として使ったのが「EdgeDeflector」というソフト。そもそもなんでEdgeが立ち上がるのかというと、

Windows10では「設定」アプリの[システム]-[既定のアプリ]画面にある“Webブラウザー”を変更すると、リンクを「Microsoft Edge」以外のWebブラウザーで開くことができる。しかし、パーソナルアシスタント“コルタナ”で開くリンクや組み込みの一部ヘルプリンクの表示には、[既定のアプリ]の設定にかかわらず「Microsoft Edge」が使われる。これはリンクのプロトコルが“http”や“https”ではなく“microsoft-edge”となっているためだ。

本ソフトは、この“microsoft-edge”プロトコルのリンクを、既定のWebブラウザーへリダイレクトするヘルパーアプリ。このソフトを利用すれば、“コルタナ”やヘルプのリンクも好みのWebブラウザーで開くことができる。動作するのはシステムがリンクを受け取った瞬間だけなので、システムに常駐することもない。

“コルタナ”が既定のWebブラウザーを使ってくれない問題を解決する「EdgeDeflector」

ということです。まったくややこしいことを…

使い方は「Cortana のウェブ検索結果を、既定のブラウザで開けるようにする!「EdgeDeflector」。」がわかりやすい説明をしてくれています。

ただ、これだけではブラウザだけ変わっても相変わらずBingの洗礼を受けてしまうので、Firefoxのアドオン「Bing to Google」を入れました。これを入れると、bing.comドメインに一切アクセスできなくなりますが願ったり叶ったり。完全にBingを駆除できて気分爽快!! ちなみに「Bing2Google」というアドオンもありますが、挙動はたぶん同じでしょう。