IMUZA.com

Xserver<<WordPress(ConoHa)<<はてなブログ

ホーム / javascript / はてなブログの特定のカテゴリーだけをリダイレクトする

はてなブログの特定のカテゴリーだけをリダイレクトする

2019/05/6 javascript, はてなブログ

はてなブログ同士の記事移転やリダイレクトをここ2,3記事で試みています。

  • 概要
  • HTMLソースでカテゴリー表示を探す
  • 特定カテゴリーをリダイレクトする Javascript

概要

ブログを統合する場合は、

  • はてなブログ間の記事移動はJavascriptとcanonicalでリダイレクト
  • はてなブログのカテゴリーを階層化し別ブログに統合した

この2記事で終了しています。

この記事で最後になりますが、今やっているのは特定のカテゴリーだけを別ブログに移転しリダイレクトすることです。

はてなブログ内で特定カテゴリーを取り出すことはできそうもありませんので、下記記事では node.js を使ってエクスポートした記事から取り出しています。

  • はてなブログの特定のカテゴリーをエクスポートする

残るは、元ブログで特定カテゴリーだけ移動先ブログにリダイレクトする方法です。

HTMLソースでカテゴリー表示を探す

記事の HTMLソースに該当するカテゴリーの表示があれば、それを見てリダイレクトさせることができます。

エンコードされていないテキスト文字で最初に現れるのは bodyタグ、たとえば <body class="page-entry enable-top-editarea enable-bottom-editarea category-映画 globalheader-off"> という風にクラス名にカテゴリーが使われています。ただ、これはカテゴリーがない場合には表示されません。

はてなブログの HTMLにはカスタムデータ属性がたくさん使われており、そのうち htmlタグのデータ属性に data-data-layer というデータ属性があり、エンコードされていますが、ブログや記事の情報がJSONデータで保存されています。

{
    "hatenablog": {
        "page_id": "entry",
        "brand": "pro",
        "analytics": {
            "non_sampling_property_id": "UA-29716941-30",
            "brand_property_id": "",
            "separated_property_id": "UA-29716941-25",
            "property_id": "UA-20445147-2"
        },
        "admin": {},
        "permalink_entry": {
            "uri": "https://www.movieimpressions.com/entry/emma",
            "categories": "映画",
            "hour": "18",
            "author_name": "ausnichts",
            "title": "「エマの瞳」(ネタバレ)プレーボーイと盲目の女性の恋、だけの映画なのか?",
            "date": "2019-05-05"
        },
        "blog": {
            "owner_name": "ausnichts",
            "name": "そんなには褒めないよ。映画評",
            "uri": "https://www.movieimpressions.com/",
            "disable_ads": "pro",
            "force_pc_view": "true",
            "enable_ads": "false",
            "is_public": "true",
            "content_seems_japanese": "true",
            "is_sleeping": "false",
            "entry_show_footer_related_entries": "false",
            "enable_keyword_link": "false",
            "lang": "ja",
            "is_responsive_view": "true"
        },
        "router_type": "blogs",
        "pro": "pro",
        "brand_tracking_category": "pro"
    }
}

ここには、カテゴリーがない記事の場合でも "categories": "" となっていますので、これを検索すれば特定のカテゴリーを特定できます。

特定カテゴリーをリダイレクトする Javascript

<script>
(function(){
if(location.href.indexOf('entry') !== -1){
    var ddl = document.getElementsByTagName('html')[0].getAttribute('data-data-layer');
    if(ddl.indexOf('"categories":"カテゴリー名または空白"') !== -1) {
        var url =  'http(s)://リダイレクト先のドメイン' + location.pathname;
        document.getElementsByTagName('link')[0].href = url;
        location.href = url;
    }
}
})();
</script>

カテゴリーを検索するだけですのでデコードしなくても文字列検索でいいと思います。

これを 設定 > 詳細設定 > headに要素を追加 に入れておけば特定カテゴリーだけリダイレクトされます。

この JSONデータ、いろいろ使えそうですね。

はてなブログの特定のカテゴリーをエクスポートする
Joomla! 3.9.6 セキュリティ & バグフィックスがリリースされています
Twitter
Facebook
ブックマーク
LINEで送る

最初のサイドバー

最新記事

2023/03/21

WordPress:メール送信にGmailのSMTPを使う(プラグインなし)

2023/03/10

WordPress:サムネイル付き次の記事/前の記事

2023/02/28

Twitterシェアリンクはintent/tweetを使おう

2023/02/21

GoogleタグマネージャーとアナリティクスGA4

2023/02/8

WordPress:人気記事を直近の期間指定で表示する

最新記事を一覧で見る

よく読まれている記事

よく読まれている記事を一覧で見る

カテゴリー

  • はてなブログ214
  • WebTips109
  • javascript98
  • Joomla!88
  • Windows68
  • Wordpress65
  • CSS63
  • Joomla!更新53
  • Linux49
  • はてなテーマ45
  • Google34
  • Plamo33
  • はてなプラグイン25
  • php22
  • Node.js18
  • Ubuntu16
  • SASS16
  • laravel415
  • Chrome11
  • cms-style10
  • iPhone9
  • ConoHa WING6
  • Git入門6
  • genesis6
  • Python5
  • Android5
  • PC全般4
  • Facebook4
  • スマートフォン4
  • 静的サイトジェネレーター3
  • Firefox3
  • SSD3
  • Blankslate3
  • Docker3
  • Twitter2
  • GitHub2
  • Mactype2
  • はてなブクマ1
  • 映画1
  • youtube1
  • rails入門1
  • Xserver1

Footer

My Web Sites

  • @半径とことこ60分
  • そんなには褒めないよ。映画評
  • IMUZA.com
  • GitHub

Related Sites

  • WordPress公式
  • WordPress関数リファレンス
  • PHPマニュアル

Contact Us

  • お問い合わせフォーム
  • Twitter
  • Facebook
  • Feedly

Copyright © 2023 · IMUZA.com