『7回目の出直し🌻』

好きなことを自分のペースで、のんびり更新

無いなら作ろうシリーズ

はてなブログでカスタマイズできない細かいところを、プログラミングで解決する!

記事URLを変更したときの新記事へのリダイレクト機能

Javascript HeadlessCMS
記事の個別URLを変更したときに、404にならないように新しいページへリダイレクトする。
新と旧の記事マッピング(データ)の置き場をMicroCMSという外部サービスにし、新旧URLデータとプログラムを分離しました。
過去の事例はJavascriptの配列変数にマッピングをもっていたので、メンテナンス性が抜群によいはずです。

kanaxx.hatenablog.jp

kanaxx.hatenablog.jp

共通コンテンツのインクルード

Javascript
複数の記事に同一のHTMLコンテンツをインクルードする方法。
はてなブログの定型文は、いちど貼り付けると全て手作業で編集し直しになるが、microCMSからその都度コンテンツデータを拾ってきて記事に埋め込むので、共通パーツの修正と反映作業が1回で済みます。

kanaxx.hatenablog.jp

kanaxx.hatenablog.jp

アドセンスの追加差し込みスクリプト

Javascript
記事内にAdSenseのJavascriptを書き込まずにAdsenseを埋め込む方法。
記事が並んでいるページ(トップページ、カテゴリページ)の<section>タグの間に埋め込むパターンと、記事ページの<h3>タグの隙間にアドセンス広告を追加する2つの方法を実装済みです。

kanaxx.hatenablog.jp

kanaxx.hatenablog.jp

Google Indexing API

PHP Google Indexing API
Google Index APIを使って、記事ページの変更を素早くGoogleのクローラーに伝える。
sitemap_indexファイルから記事ページURLを探してきて、更新があった上位200件に対して再インデックス依頼を投げ込みます。

kanaxx.hatenablog.jp

kanaxx.hatenablog.jp

Google Search Console API

PHP Search Console API
サイトマップが上手く読み込まれないので、Sitemap APIで直接サイトマップ再読み込みを指示する。
月替わりで新しいサイトマップができた場合にも、自動でサイトマップ登録を行います。

kanaxx.hatenablog.jp

Sticky コンテンツ

Javascript
記事の右下が空白で寂しいので、スクロールしたときにぴたっと張り付くコンテンツを実現しました。

kanaxx.hatenablog.jp

カテゴリーページのindexing

PHP google Indexing API AtomPub
はてなブログのカテゴリーページ(/archive/category/*)のURLをAtomPubから探し出して、Google Indexing APIを呼び出します。

kanaxx.hatenablog.jp

トップページで固定エントリーを目立たせる

Javascript
ブログトップページに鎮座している固定したエントリーをCSSで目立たせるためのJavascript。

kanaxx.hatenablog.jp

未展開のアフィリエイトタグを探す

Google Apps Scritp
はてなの機能を使って埋め込んだリンク切れのアフィリエイトタグを探すスクリプト。Google Apps Script(GAS)で作ったので、スプレッドシートにデータが出る形。

kanaxx.hatenablog.jp

はてなースターを集計する

Google Apps Scritp
Google Apps Script 第二弾。GASとワークシートを使って、ブログの全記事のはてなスターを集計する。

kanaxx.hatenablog.jp

はてなブログのAtomPubを使って記事を更新する

PHP AtomPub
記事一覧を取得するAPIと記事更新のAPIを組み合わせて、記事を空更新するPHPプログラム。

kanaxx.hatenablog.jp

楽天のランキング情報を記事ページ内に埋め込む

JavaScript Rakuten API
記事ページ内にランキング情報を動的に埋め込むプログラム。
表示するたびにランキング情報を参照するため、いつも最新のランキング情報が表示できます。ランキングのジャンルを選択することで、記事の内容に即したランキング情報にカスタマイズすることもできます。

kanaxx.hatenablog.jp