PHPで指定ページのHTMLファイルをダウンロード

あるページを、HTMLファイルとしてダウンロードするプログラムを作ります。PHPでは、数行のコードで実現できます。

PHPでHTMLファイルをダウンロードするコード

上記、コードで動作しました。

2つのHTTPリクエストヘッダーを記述しています。

HTMLです・・・header(“Content-type: text/html; charset=utf-8”);

ブラウザで開かずダウンロードします・・・header(“Content-Disposition: attachment; filename=\”download.html\””); echo $html;

 

なお、PHPバージョンは7.2.3。XAMPPで実行しました。

WordPressのパーマリンクを乱数にする

何か人に言えない事情などがあって、WordPressのパーマリンクを乱数にすることもあるでしょう。乱数にするための参考情報を記載します。

パーマリンク乱数にするコード

WordPressのパーマリンクをランダム(乱数)にするを参考とさせていただきました。

functions.phpに記述します。上記サイトのコードと1行だけ違います。

同じ投稿でも、入力画面を開くたびにIDが変わるのが私の場合は困り、2行目に「preg_match( ‘/[0-9]{8}/’, $slug) == false」という条件を追加しました。

スラッグが8桁の数字ではないときだけ、乱数を発生させます。

これで一度作ったパーマリンクが、変わることがなくなりました。

歩きながらブログを書く

毎日5kmのウォーキングと、ブログ更新を日課にしています。時間がないので同時に行うことにしました。しかし、この方法はあまり良くないようです。

習慣化が難しい

ウォーキングとブログを習慣にしていました。

しかし今日はプログラミングの仕事でハマり、さらに保育園の迎えで子供がなかなか帰らず、最後に車の故障の対応・・・。

突発的なイベントが多いため、自分の生活のコントロールが難しいです。

習慣化したいことを、無理せず続けるにはどうすればよいのでしょう。

同時に行う

ウォーキングとブログ投稿、もはや同時に行うくらいしか方法はありません。

ひと気がないところを、歩きスマホです。

ゆっくり、ゆっくり歩きながらスマホで入力します。

・・・距離が進まない。

相性は良くない

さらに、ウォーキングとブログ投稿は相性が悪いです。

歩きながらのスマホ操作。腕を振らず、首を曲げて歩く。

健康的ではなく、この方法はお勧めできません。

速攻でDB(MySQL)を編集するなら「Adminer」

DB(データベース)が怖くて、避けながら生きてきました。しかし突然、1時間以内にDBを編集しないといけない状況に追い込まれました。使ったソフトは「Adminer」。シンプルで、速攻で対応できます。

Adminerダウンロード

Adminerダウンロードページに行きます。

冒頭のキャプチャの「Download」を押すと、下にスクロールして、何をダウンロードするか選ぶことになります。今回、編集が必要なDBはMySQLです。

「Adminer 4.7.7 for MySQL」※2020年10月時点での最新バージョン

をダウンロードします。

adminer-4.7.7-mysql.phpというファイルが1つだけダウンロードされます。

DBがあるサーバーにアップする

adminer-4.7.7-mysql.phpを、DBの置いてあるサーバーにアップします。

アップした場所をブラウザで読み込むと、サーバー、ユーザー名、パスワードを入力する画面に行きます。

これらの情報を入れて、あとは勘で操作できるほど、シンプルなUIです。

※時間があればじっくり使い方を調べたほうが良いです。

とにかく急ぎでDBを編集してくれと、いきなり言われたら「Adminer」を使うことをお勧めします。

怪我したらマスキングテープで処置

連日働きすぎで、家族との時間を過ごしていません。わずかな時間、子供と話します。「包丁で指切っちゃった。」と、三男が言いに来ました。しかし反応できず・・・。

マスキングテープグルグル巻き

「唐揚げ切ってたら、指切っちゃったよ。」と三男。

指がマスキングテープでグルグル巻きです。

見た目ほど、傷は深くないようです。

ツッコむ余裕がなかったのですが、改めて見ると、なんで絆創膏ではなく、マスキングテープなんだ・・・。

記事を書きながら、何も反応できなかった自分に反省。

仕事の何かを捨てないと、心に余裕がない状況。

小動物用タブレット「アリメペット」の残量注意

モルモットの食事に「アリメペット」というタブレットを混ぜています。栄養バランスを良くするためのサプリメントです。上げ底のようになっているので残量に注意です。

気が付いたらなくなっている

ペットショップの店員さんに勧められるまま、小動物用タブレット「アリメペット」をモルモットにあげています。

いつも通り、食事に混ぜようとすると・・・

あれ?残り少ない。

底には厚いスポンジがあって、思ったより量が少なかったです。

タブレットが割れないようにするスポンジでしょう。

慌てて買いに行く

すぐになくならないよう、今までの6倍サイズの「アリメペット」を購入。

モルモットは、このタブレットが一番好き。

木の実より先に、タブレットを食べます。相当おいしい味付けなのでしょう。

切らさなくてよかった。

今度は上げ底であることを忘れないように。

「月は落ちている」ニュートンと息子は知っている

書籍『史上最強の哲学入門』でニュートンについて語られていました。月もリンゴも同じで地球に落ちているそうです。この知識を自慢げに息子に話したら、既に知っていました。それどころか、逆に説明されました。

リンゴが落ちるのを見て、ニュートンは万有引力を発見した?

一見意味のなさそうなことでも、すばらしい発見ができる!

ニュートンがリンゴの落下を見て、万有引力を発見したことは、教訓のように語り継がれています。

でも、何か腑に落ちない。

リンゴ一つで万有に結びつけるのは、話が飛躍しているような。

どうやら実際はリンゴだけではなく、月の落下まで含めて万有引力の法則を導いたようです。

月の落下と遠心力が釣り合う

Amazonオーディブルで『史上最強の哲学入門』という書籍の朗読を聞いていました。

そこでニュートンの万有引力の説明が流れます。なぜか哲学書で科学の知識を得ます。

そして引力により、リンゴも月も落ちていることを知りました。

月は落ちているのですが、地球から離れる遠心力と、月の落下する力が釣り合って、いつまでも落ちてこないようです。

へぇー!

小学4年の長男に、この知識をひけらかしたくなりました。

知ってるよ。月は落ちている

長男に月の話を言いかけたら・・・

「知っているよ。月は落ちているの。」

・・・。

え?

長男はホワイトボードに説明を書いてくれました。

図解です。本来直進するはずの月が、落ちながら地球を回っていることを教えてくれました。

あれ?父より詳しくない?そうか・・・遠心力の正体は、直進しようとする力なんだ。

説明を見て、長男の知識が平均的じゃないのがおもしろいです。

科学の好奇心、そして月のクレーターまで書き込む絵画への好奇心に感心。

逆に「おちないとどっかえいってしまう。」と書いてしまう国語への興味のなさ。

「え」と「へ」の使い分けがいまだにできない。

いいと思う。能力は平均的じゃなくて。

WordPressで投稿一覧をJSONで書き出す

WordPressでJSONを書き出す例です。投稿一覧ページを非同期で取得したいときに使いそうな形式で出力します。

JSONで書き出す情報

  • 投稿ID
  • 投稿日
  • タイトル
  • URL
  • 画像フルサイズ
  • 画像サムネサイズ
  • カテゴリー
  • タグ
  • 概要

案件によって違いはあると思います。

全ての記事を取得する想定のため、ファイルサイズが大きい本文は省きました。

JSON書き出しテンプレートを準備

4行目までのコメントアウトで、テンプレート名を指定します。

/*
Template Name: JSON
*/

ここでは「JSON」というテンプレート名にしました。

カテゴリーとタグは複数ある可能性があるため、配列で書き出します。

このコードをjson.phpと言うファイル名で保存し、テーマファイルとしてアップロードします。

個別ページでテンプレート指定

空の固定ページを作ります。ページ属性のテンプレートの項目で、先ほど名付けた「JSON」を選択します。

パーマリンクも「・・・/json」など、任意のファイル名に変えておきます。

最後に公開ボタンを押して完了です。

これで、上記で指定したパーマリンクをたたけば、記事一覧のJSONデータを取得できます。

カスタム投稿でお知らせは作らない・WordPress

企業サイトをWordPressで構築する際、「お知らせ」のコンテンツを高確率で作ります。「お知らせ」はデフォルトの「投稿」で管理しましょう。カスタム投稿タイプで「お知らせ」を作ると大変になります。

投稿が0件?

ある企業サイトのWordPressをメンテナンスしたとき、投稿が0件で、お知らせが数百件というケースに出くわしました。

お知らせを「お知らせ」のカスタム投稿タイプを作る・・・間違ってはなさそうですが、デメリットが大きいです。

世の中は「投稿」のコードであふれている

プログラミングで投稿を読み込む場合は、get_posts()を使います。

・・・しかしカスタム投稿タイプの「お知らせ」は読み込まれません。

get_posts(array(‘post_type’ => get_post_type(“お知らせの投稿タイプスラッグ”))

というように、お知らせの投稿タイプスラッグを指定しなければ読み込まれません。

当然です。

しかし世の中では、デフォルトの「投稿」を想定して、コードが公開されています。

そのコードをそのままコピペすると、動かなくてデバッグが必要になります。

そして「ああ、投稿タイプを指定しないと・・・」と気づき、無駄な時間を過ごすのです。

プラグインが制限される

もう一つ問題。

WordPressプラグインも、「投稿」を想定して作られることが多いです。

例えば公式のプラグイン「WordPress インポートツール」。

「投稿」のエクスポートであれば、カテゴリー、投稿者、開始日時、終了日時、ステータスという、条件を選択した出力が可能です。

しかしカスタム投稿タイプで「お知らせ」を作ってしまうと、条件選択はできず、全件エクスポートしかできません。

想定以上にプラグインの機能が制限されてしまいます。

 

以上のことから、お知らせは「投稿」で管理することを強く推奨します。

モルモットに噛み癖が治らない

モルモットと一緒に暮らして一か月半。噛み癖が治りません。改善の目途が立たず、人間側が噛まれることを受け入れることにしました。

カプ、カプ、カプ

腕とか腹とか、どこでも噛みます。特に指を出すと必ず噛みます。甘噛みでかわいいと見せかけ、ごくまれに血が出るほど噛むこともあるようです。

今、長男が噛まれている、いや、噛ませています。

「噛まれて皮むけるんだよね~」

・・・。

噛まれることを受け入れているようです。

無理にモルモットの噛み癖を直さず、人間側が受け入れるという方法もあるのですね。