[{"data":1,"prerenderedAt":1079},["ShallowReactive",2],{"site-info":3,"post-tech-1047":7,"related-post-tag-index":48},{"name":4,"description":5,"url":6},"アイ・エル・アール","フリーランスWEB制作","https:\u002F\u002Filr.jp\u002Fwp\u002F",{"ID":8,"title":9,"post_type":10,"post_type_label":11,"url":12,"date":13,"modified":14,"thumbnail":15,"thumb":15,"tag":16,"slug":37,"excerpt":38,"content":39,"simple_css":40,"adjacent":41},1047,"Vue.jsで暗号化・復号化を実装する","tech","Tech Blog","\u002Ftech\u002F1047\u002F","2023.05.04","2024.06.25","\u002Fuploads\u002F2023\u002F05\u002Fvuejs.png",[17,21,25,29,33],{"name":18,"slug":19,"url":20},"JavaScript","javascript","\u002Ftag\u002Fjavascript\u002F",{"name":22,"slug":23,"url":24},"Vue","vue","\u002Ftag\u002Fvue\u002F",{"name":26,"slug":27,"url":28},"プラグイン","plugin","\u002Ftag\u002Fplugin\u002F",{"name":30,"slug":31,"url":32},"復号化","decryption","\u002Ftag\u002Fdecryption\u002F",{"name":34,"slug":35,"url":36},"暗号化","encryption","\u002Ftag\u002Fencryption\u002F","vue-js%e3%81%a7%e6%9a%97%e5%8f%b7%e5%8c%96%e3%83%bb%e8%a4%87%e5%90%88%e5%8c%96%e3%82%92%e5%ae%9f%e8%a3%85%e3%81%99%e3%82%8b","概要 下記githubのソースをもとにVue.js用にプラグイン化しました。 https:\u002F\u002Fgist.github.com\u002FAgoreddah\u002F511864e2c00da064586523b3087c30e2 ソース  [&hellip;]","\n\u003Ch3 class=\"wp-block-heading\">概要\u003C\u002Fh3>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">下記githubのソースをもとにVue.js用にプラグイン化しました。\u003C\u002Fp>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">\u003Ca href=\"https:\u002F\u002Fgist.github.com\u002FAgoreddah\u002F511864e2c00da064586523b3087c30e2\" target=\"_blank\" rel=\"noreferrer noopener\">https:\u002F\u002Fgist.github.com\u002FAgoreddah\u002F511864e2c00da064586523b3087c30e2\u003C\u002Fa>\u003C\u002Fp>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\"\u002F>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">ソース\u003C\u002Fh3>\n\n\n\n\u003Cdiv class=\"hcb_wrap\">\u003Cpre class=\"prism line-numbers lang-js\" data-file=\"encrypter.js\" data-lang=\"JavaScript\">\u003Ccode>\u002F\u002F load dependencies\nconst crypto = require(&#39;crypto&#39;);\n\n&#39;use strict&#39;;\n\nconst APP_KEY = 暗号化キー;\n\nconst SETTINGS = {\n  key : Buffer.from(APP_KEY.substring(7), &#39;base64&#39;),\n  sha : &#39;sha256&#39;,\n  mode : &#39;AES-256-CBC&#39;\n}\n\nconst Crypto = {\n  install(Vue) {\n    Vue.prototype.crypto = {\n      \u002F**\n       * Caclulate MAC.\n       * Paylod needs to be decoded to JSON with getJsonPayload(payload)\n       * @param {Object} payload with iv & value\n       * @param {String} key\n       *\u002F\n      calculateMac(payload, key){\n        let hashedData = this.hash(payload[&#39;iv&#39;], payload[&#39;value&#39;])\n        return this.hashHmac(hashedData, key);\n      },\n      \u002F**\n       * Decrypts payload with master key\n       * @param {String} Payload - base64 encoded json with iv, value, mac information\n       *\u002F\n      decrypt(payload){\n        if(payload !== &#39;&#39;){\n          try {\n            let _payload = this.getJsonPayload(payload);\n            let _iv = Buffer.from(_payload[&#39;iv&#39;], &#39;base64&#39;);\n            let decipher = crypto.createDecipheriv(SETTINGS.mode, SETTINGS.key, _iv);\n            let decrypted = decipher.update(_payload[&#39;value&#39;], &#39;base64&#39;, &#39;utf8&#39;);\n            decrypted += decipher.final(&#39;utf8&#39;);\n            return this.hashDeserialize(decrypted);\n          }catch (e) {\n            return payload;\n          }\n        }else{\n          return &#39;&#39;;\n        }\n      },\n      \u002F**\n       * Create payload encrypted with master key.\n       * Payload contains: iv, value, mac\n       * @param {String} data to be encrypted\n       * @return {String} Base64 encdoded payload\n       *\u002F\n      encrypt(data){\n        let serializedValue = this.hashSerialize(data);\n        try{\n          let _iv = crypto.randomBytes(16);\n          let base64_iv = _iv.toString(&#39;base64&#39;);\n          let cipher = crypto.createCipheriv(SETTINGS.mode, SETTINGS.key, _iv);\n          let encrypted = cipher.update(serializedValue, &#39;utf8&#39;, &#39;base64&#39;);\n          encrypted += cipher.final(&#39;base64&#39;);\n          let _mac = this.hash(base64_iv, encrypted);\n\n          let payloadObject = {\n            &#39;iv&#39; : base64_iv,\n            &#39;value&#39; : encrypted,\n            &#39;mac&#39; : _mac\n          }\n\n          let _payload = JSON.stringify(payloadObject);\n          return Buffer.from(_payload).toString(&#39;base64&#39;);\n        }\n        catch(e){\n          throw new Error(&#39;Cannot encrypt data provided !&#39;);\n        }\n      },\n      \u002F**\n       * Get JSON object from payload.\n       * Payload needs to be base64 encoded and must contains iv, value, mac attributes.\n       * MAC is validated\n       * @param {String} payload\n       * @return {Object} Data with iv, value, mac\n       *\u002F\n      getJsonPayload(payload){\n        if(payload === undefined || payload === &#39;&#39;){\n          throw new Error(&#39;Payload MUST NOT be empty !&#39;);\n        }\n\n        if(typeof payload !== &#39;string&#39;){\n          throw new Error(&#39;Payload MUST be string !&#39;);\n        }\n\n        try{\n          this._payload = JSON.parse(Buffer.from(payload, &#39;base64&#39;));\n        }\n        catch(e){\n          throw new Error(&#39;Payload cannot be parsed !&#39;);\n        }\n\n        if(!this.isValidPayload(this._payload)){\n          throw new Error(&#39;Payload is not valid !&#39;);\n        }\n\n        if(!this.isValidMac(this._payload)){\n          throw new Error(&#39;Mac is not valid !!&#39;);\n        }\n        return this._payload;\n      },\n      \u002F**\n       * Hash function.\n       * Combines initialization vector (iv) with data to be hashed (value).\n       * Uses master key to hash results\n       * @param {String} iv Initialization vector\n       * @param {String} value Data\n       *\u002F\n      hash(iv, value){\n        if(iv === undefined || iv === &#39;&#39;){\n          throw new Error(&#39;Iv is not defined !&#39;);\n        }\n        if(value === undefined || value === &#39;&#39;){\n          throw new Error(&#39;Value is not defined !&#39;);\n        }\n        let data = String(iv) + String(value);\n        return this.hashHmac(data, SETTINGS.key);\n      },\n      \u002F**\n       * Crypto function to hash data with given key\n       * @param {String} data\n       * @param {String} key\n       *\u002F\n      hashHmac(data, key){\n        let hmac = crypto.createHmac(SETTINGS.sha, key);\n        hmac.update(data);\n        return hmac.digest(&#39;hex&#39;);\n      },\n      \u002F**\n       * MAC validation function.\n       * Payload must be decoded to JSON\n       * @param {Object} payload\n       *\u002F\n      isValidMac(payload){\n        let bytes = crypto.randomBytes(16),\n          calculatedMac = this.calculateMac(payload, bytes);\n\n        let originalMac = this.hashHmac(payload[&#39;mac&#39;], bytes);\n        return originalMac === calculatedMac;\n      },\n      \u002F**\n       * Payload validation function.\n       * Payload must be decoded to JSON\n       * @param {Object} payload\n       *\u002F\n      isValidPayload(payload){\n        return (\n          Object.prototype.hasOwnProperty.call(payload, &quot;iv&quot;) &&\n          Object.prototype.hasOwnProperty.call(payload, &quot;value&quot;) &&\n          Object.prototype.hasOwnProperty.call(payload, &quot;mac&quot;)\n        );\n      },\n      hashDeserialize(data) {\n        let str = String(data)\n        return str.substring(str.indexOf(&#39;:&#39;, 2) + 2, str.lastIndexOf(&#39;;&#39;) - 1)\n      },\n      hashSerialize(data){\n        if(typeof data !== &#39;string&#39;){\n          throw new Error(&#39;Data to be serialized must be type of string !&#39;);\n        }\n        let str = String(data);\n        return &#39;s:&#39;+str.length+&#39;:&quot;&#39;+str+&#39;&quot;;&#39;;\n      }\n\n    }\n  }\n}\n\nexport default Crypto;\n\n\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\n\n\u003Cdiv class=\"hcb_wrap\">\u003Cpre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\">\u003Ccode>const APP_KEY = 暗号化キー;\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\n\n\u003Cp class=\"wp-block-paragraph\">暗号化キーは直接書いても良いですし、.envファイルに設定しても良いと思います。\u003C\u002Fp>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\"\u002F>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">Vue.jsのプラグイン登録\u003C\u002Fh3>\n\n\n\n\u003Cdiv class=\"hcb_wrap\">\u003Cpre class=\"prism line-numbers lang-js\" data-file=\"main.js\" data-lang=\"JavaScript\">\u003Ccode>import Crypto from &#39;.\u002Fplugins\u002Fencrypter&#39;;\nVue.use(Crypto);\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\"\u002F>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">暗号化\u003C\u002Fh3>\n\n\n\n\u003Cdiv class=\"hcb_wrap\">\u003Cpre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\">\u003Ccode>this.crypto.encrypt(&#39;暗号化したい文字列&#39;);\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n\n\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\"\u002F>\n\n\n\n\u003Ch3 class=\"wp-block-heading\">復号化\u003C\u002Fh3>\n\n\n\n\u003Cdiv class=\"hcb_wrap\">\u003Cpre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\">\u003Ccode>this.crypto.decrypt(&#39;this.crypto.encryptで暗号化された文字列&#39;);\u003C\u002Fcode>\u003C\u002Fpre>\u003C\u002Fdiv>\n","",{"next":42,"previous":45},{"ID":43,"title":18,"post_type":10,"date":44},1061,"2023.05.18",{"ID":46,"title":47,"post_type":10,"date":13},1027,"Youtubeフィードを使用してWordPressにチャンネルの動画一覧を表示する。",[49,65,175,307,324,332,352,370,387,402,589,596,616,623,645,661,668,725,732,759,765,789,917,943,953,1002,1022,1031,1045,1053,1059,1065],{"name":50,"slug":51,"url":52,"posts":53},"Android","android","\u002Ftag\u002Fandroid\u002F",[54],{"ID":55,"title":56,"post_type":10,"post_type_label":11,"url":57,"date":58,"modified":59,"thumbnail":60,"thumb":60,"tag":61,"slug":63,"excerpt":64},298,"Android ChromeをUSBでパソコンに繋いでデバッグする方法","\u002Ftech\u002F298\u002F","2022.10.03","2022.10.10","\u002Fuploads\u002F2022\u002F10\u002Fthumbnail_298-1200x675.jpg",[62],{"name":50,"slug":51,"url":52},"%ef%bf%bc","Android 側 ※OSのバージョンによって異なる場合があります。 ホーム画面などにある「設定」アイコンをタップ 「設定」にある、「デバイス情報」をタップ 「ビルド番号」を数回タップしたあと、「PIN番号」を入力。 「 [&hellip;]",{"name":66,"slug":67,"url":68,"posts":69},"API","api","\u002Ftag\u002Fapi\u002F",[70,88,106,122,143,162],{"ID":71,"title":72,"post_type":10,"post_type_label":11,"url":73,"date":74,"modified":74,"thumbnail":75,"thumb":75,"tag":76,"slug":86,"excerpt":87},2756,"WordPressサイトをヘッドレスCMS化し、Nuxt.js + AI開発で静的サイト運用に移行した話","\u002Ftech\u002F2756\u002F","2026.06.12","\u002Fuploads\u002F2026\u002F06\u002Fimg_2756-1200x675.png",[77,78,82],{"name":66,"slug":67,"url":68},{"name":79,"slug":80,"url":81},"Nuxt","nuxt","\u002Ftag\u002Fnuxt\u002F",{"name":83,"slug":84,"url":85},"WordPress","wordpress","\u002Ftag\u002Fwordpress\u002F","wordpress%e3%82%b5%e3%82%a4%e3%83%88%e3%82%92%e3%83%98%e3%83%83%e3%83%89%e3%83%ac%e3%82%b9cms%e5%8c%96%e3%81%97%e3%80%81nuxt-js-ai%e9%96%8b%e7%99%ba%e3%81%a7%e9%9d%99%e7%9a%84%e3%82%b5%e3%82%a4","これまでこのサイトは、WordPressを使って運用していました。 WordPressは記事の管理や更新がしやすく、長く使われているCMSです。プラグインも豊富で、管理画面から多くのことが完結します。一方で、サーバー上で [&hellip;]",{"ID":89,"title":90,"post_type":10,"post_type_label":11,"url":91,"date":92,"modified":92,"thumbnail":93,"thumb":93,"tag":94,"slug":104,"excerpt":105},1737,"WordPressに気象庁APIで天気を表示する","\u002Ftech\u002F1737\u002F","2023.07.24","\u002Fuploads\u002F2023\u002F07\u002Fweather_api-1200x731.webp",[95,96,99,100],{"name":66,"slug":67,"url":68},{"name":97,"slug":97,"url":98},"php","\u002Ftag\u002Fphp\u002F",{"name":83,"slug":84,"url":85},{"name":101,"slug":102,"url":103},"気象庁","jma","\u002Ftag\u002Fjma\u002F","wordpress%e3%81%ab%e6%b0%97%e8%b1%a1%e5%ba%81api%e3%81%a7%e5%a4%a9%e6%b0%97%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b","概要 気象庁が提供しているAPIから天気情報をWordPressに表示します。 エリア情報 エリア情報は下記URLから確認することができます。 https:\u002F\u002Fwww.jma.go.jp\u002Fbosai\u002Fcommon\u002Fcon [&hellip;]",{"ID":107,"title":108,"post_type":10,"post_type_label":11,"url":109,"date":110,"modified":110,"thumbnail":111,"thumb":111,"tag":112,"slug":120,"excerpt":121},1131,"WordPressで月送りのカレンダーを実装（祝日対応）","\u002Ftech\u002F1131\u002F","2023.06.15","\u002Fuploads\u002F2023\u002F06\u002Fbnr_calendar.png",[113,114,118,119],{"name":66,"slug":67,"url":68},{"name":115,"slug":116,"url":117},"Google","google","\u002Ftag\u002Fgoogle\u002F",{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},"wordpress%e3%81%a7%e6%9c%88%e9%80%81%e3%82%8a%e3%81%ae%e3%82%ab%e3%83%ac%e3%83%b3%e3%83%80%e3%83%bc%e3%82%92%e5%ae%9f%e8%a3%85%ef%bc%88%e7%a5%9d%e6%97%a5%e5%af%be%e5%bf%9c%ef%bc%89","概要 月送りが出来て、投稿日にリンクと祝日の表示がされるカレンダーを実装します。 下記のようにAPIにしてHTML書き出しにしています。 https:\u002F\u002Filr.jp\u002Fapi\u002Fcalendar.php 祝日部 [&hellip;]",{"ID":46,"title":47,"post_type":10,"post_type_label":11,"url":123,"date":13,"modified":124,"thumbnail":125,"thumb":125,"tag":126,"slug":141,"excerpt":142},"\u002Ftech\u002F1027\u002F","2026.06.04","\u002Fuploads\u002F2022\u002F10\u002Fyoutube_id.png",[127,128,132,133,137],{"name":66,"slug":67,"url":68},{"name":129,"slug":130,"url":131},"RSS","rss","\u002Ftag\u002Frss\u002F",{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},"YouTube","youtube","\u002Ftag\u002Fyoutube\u002F",{"name":138,"slug":139,"url":140},"フィード","feed","\u002Ftag\u002Ffeed\u002F","youtube%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%81%ab%e3%83%81%e3%83%a3%e3%83%b3%e3%83%8d%e3%83%ab%e3%81%ae%e5%8b%95%e7%94%bb%e4%b8%80%e8%a6%a7","概要 Youtubeにはフィードを取得する方法があります。 今回はYoutubeフィードを使用してWordPressにチャンネルの動画一覧を表示させます。 フィードURL チャンネルIDは以前投稿した記事で確認することが [&hellip;]",{"ID":144,"title":145,"post_type":10,"post_type_label":11,"url":146,"date":147,"modified":148,"thumbnail":149,"thumb":149,"tag":150,"slug":160,"excerpt":161},521,"Instagram Graph APIのビジネスアカウントIDとアクセストークン取得","\u002Ftech\u002F521\u002F","2022.11.01","2023.08.08","\u002Fuploads\u002F2022\u002F11\u002Fimg_instagram.webp",[151,152,156],{"name":66,"slug":67,"url":68},{"name":153,"slug":154,"url":155},"Instagram","instagram","\u002Ftag\u002Finstagram\u002F",{"name":157,"slug":158,"url":159},"Node.js","node-js","\u002Ftag\u002Fnode-js\u002F","instagram-graph-api%e3%81%ae%e3%83%93%e3%82%b8%e3%83%8d%e3%82%b9%e3%82%a2%e3%82%ab%e3%82%a6%e3%83%b3%e3%83%88id%e3%81%a8%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%83%88%e3%83%bc%e3%82%af%e3%83%b3","概要 WEBサイトにインスタグラムの写真を埋め込むために必要なビジネスアカウントIDとアクセストークン取得方法です。3段階目のアクセストークンまでの発行をスクリプトにしました。 用意するもの 必要なデータ ソース git [&hellip;]",{"ID":163,"title":164,"post_type":10,"post_type_label":11,"url":165,"date":166,"modified":167,"thumbnail":168,"thumb":168,"tag":169,"slug":173,"excerpt":174},464,"WordPressにYouTubeの動画一覧を表示する","\u002Ftech\u002F464\u002F","2022.10.28","2022.12.02","\u002Fuploads\u002F2022\u002F10\u002Fwordpress-youtube-1200x684.png",[170,171,172],{"name":66,"slug":67,"url":68},{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},"wordpress%e3%81%abyoutube%e3%81%ae%e5%8b%95%e7%94%bb%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b","概要 簡易的にWordPressにYouTubeの動画一覧を表示する方法 ※事前にYouTubeのAPIキーの取得をする必要があります。 検索部分 「youtube_data」の部分はTransients APIで保存す [&hellip;]",{"name":176,"slug":177,"url":178,"posts":179},"CSS","css","\u002Ftag\u002Fcss\u002F",[180,191,205,216,225,235,246,257,267,277,287,297],{"ID":181,"title":182,"post_type":10,"post_type_label":11,"url":183,"date":184,"modified":185,"thumbnail":186,"thumb":186,"tag":187,"slug":189,"excerpt":190},1904,"ブラウザの横幅に合わせてフォントサイズを変更する。","\u002Ftech\u002F1904\u002F","2023.11.28","2023.12.15","\u002Fuploads\u002F2022\u002F10\u002Filr.png",[188],{"name":176,"slug":177,"url":178},"%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%ae%e6%a8%aa%e5%b9%85%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%83%95%e3%82%a9%e3%83%b3%e3%83%88%e3%82%b5%e3%82%a4%e3%82%ba%e3%82%92%e5%a4%89%e6%9b%b4","概要 CSSでブラウザの横幅に合わせて、フォントサイズを変更します。方法はいろいろありますので、こちらは私の個人的な方法で備忘録になります。 施策 CSS htmlに設定します。大元であるhtmlに設定することでその中の [&hellip;]",{"ID":192,"title":193,"post_type":10,"post_type_label":11,"url":194,"date":195,"modified":148,"thumbnail":196,"thumb":196,"tag":197,"slug":203,"excerpt":204},1769,"HTMLメール用にインラインCSSに変換する","\u002Ftech\u002F1769\u002F","2023.07.27","\u002Fuploads\u002F2023\u002F07\u002Fimg_mail.webp",[198,199],{"name":176,"slug":177,"url":178},{"name":200,"slug":201,"url":202},"HTML","html","\u002Ftag\u002Fhtml\u002F","html%e3%83%a1%e3%83%bc%e3%83%ab%e7%94%a8%e3%81%ab%e3%82%a4%e3%83%b3%e3%83%a9%e3%82%a4%e3%83%b3css%e3%81%ab%e5%a4%89%e6%8f%9b%e3%81%99%e3%82%8b","概要 OutlookのレンダリングエンジンがEdgeになるみたいですが、まだまだ、テーブルコーディング、インラインCSSが主流でコーディングが面倒で悩まされます。 今回はメルマガのHTMLメール用のコーディングをする際に [&hellip;]",{"ID":206,"title":207,"post_type":10,"post_type_label":11,"url":208,"date":209,"modified":210,"thumbnail":211,"thumb":211,"tag":212,"slug":214,"excerpt":215},889,"CSSで三角形を作る(clip-path版)","\u002Ftech\u002F889\u002F","2022.12.28","2026.06.03","\u002Fuploads\u002F2021\u002F09\u002Fimg_css-triangle-1.png",[213],{"name":176,"slug":177,"url":178},"css%e3%81%a7%e4%b8%89%e8%a7%92%e5%bd%a2%e3%82%92%e4%bd%9c%e3%82%8bclip-path%e7%89%88","概要 リンクのアイコンなどに使用する三角アイコンをCSSだけで作ります。以前、CSSで三角形を作る(border版)の記事を書いたのですが、その方法のclip-path版です。 ソース .triangleにスタイルを設定 [&hellip;]",{"ID":217,"title":218,"post_type":10,"post_type_label":11,"url":219,"date":167,"modified":167,"thumbnail":220,"thumb":220,"tag":221,"slug":223,"excerpt":224},837,"要素の境界線を斜めにする","\u002Ftech\u002F837\u002F","\u002Fuploads\u002F2022\u002F12\u002Fimg837-1200x638.png",[222],{"name":176,"slug":177,"url":178},"%e8%a6%81%e7%b4%a0%e3%81%ae%e5%a2%83%e7%95%8c%e7%b7%9a%e3%82%92%e6%96%9c%e3%82%81%e3%81%ab%e3%81%99%e3%82%8b","概要 要素の境界線を水平ではなく少し斜めにCSSでします。背景をグラデーションや画像にすることも可能です。 サンプル タイトル 文章です。文章です。文章です。文章です。文章です。文章です。文章です。文章です。文章です。文 [&hellip;]",{"ID":226,"title":227,"post_type":10,"post_type_label":11,"url":228,"date":229,"modified":229,"thumbnail":230,"thumb":230,"tag":231,"slug":233,"excerpt":234},771,"mask-imageでSVG画像の色を変える","\u002Ftech\u002F771\u002F","2022.11.26","\u002Fuploads\u002F2022\u002F11\u002Fmask-image-color-1200x819.png",[232],{"name":176,"slug":177,"url":178},"mask-image%e3%81%a7svg%e7%94%bb%e5%83%8f%e3%81%ae%e8%89%b2%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b","概要 色違いのSVG画像を使用したいけど、別ファイルにして作成するのも面倒くさいし、SVGをインラインで挿入してCSSで色を変えるもの、SVGインラインは可動性にかけてソース見づらいしみたいな時に使用する方法です。 ※色 [&hellip;]",{"ID":236,"title":237,"post_type":10,"post_type_label":11,"url":238,"date":239,"modified":240,"thumbnail":241,"thumb":241,"tag":242,"slug":244,"excerpt":245},747,"mask-imageで透過グラデーション","\u002Ftech\u002F747\u002F","2022.11.18","2023.07.21","\u002Fuploads\u002F2022\u002F11\u002Fmask-image-1200x671.webp",[243],{"name":176,"slug":177,"url":178},"mask-image%e3%81%a7%e9%80%8f%e9%81%8e%e3%82%b0%e3%83%a9%e3%83%87%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3","概要 下記のように要素を透過グラデーションする方法です。これを使用すると背景に溶け込ませるようなグラデーションにすることができます。 サンプル HTML CSS mask-imageにlinear-gradientでグラ [&hellip;]",{"ID":247,"title":248,"post_type":10,"post_type_label":11,"url":249,"date":250,"modified":251,"thumbnail":252,"thumb":252,"tag":253,"slug":255,"excerpt":256},395,"ボーダーをグラデーション・角丸・背景抜きでCSSで実装する","\u002Ftech\u002F395\u002F","2022.10.27","2023.06.16","\u002Fuploads\u002F2022\u002F10\u002Fborder-radius-gradient-1200x777.png",[254],{"name":176,"slug":177,"url":178},"%e3%83%9c%e3%83%bc%e3%83%80%e3%83%bc%e3%82%92%e3%82%b0%e3%83%a9%e3%83%87%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%83%bb%e8%a7%92%e4%b8%b8%e3%83%bb%e8%83%8c%e6%99%af%e6%8a%9c%e3%81%8d%e3%81%a7css","はじめに ボーダーの色をグラデーションにして角丸で背景抜きを実装したくて色々ググってみたのですが、なかなか見つからなくて唯一見つけた記事を参考に書かせていただいてます。 https:\u002F\u002Fdev.to\u002Fafif\u002Fborde [&hellip;]",{"ID":258,"title":259,"post_type":10,"post_type_label":11,"url":260,"date":261,"modified":262,"thumbnail":211,"thumb":211,"tag":263,"slug":265,"excerpt":266},228,"CSSで三角形を作る(border版)","\u002Ftech\u002F228\u002F","2021.09.11","2026.06.02",[264],{"name":176,"slug":177,"url":178},"css%e3%81%a7%e4%b8%89%e8%a7%92%e5%bd%a2%e3%82%92%e4%bd%9c%e3%82%8b","概要 リンクのアイコンなどに使用する三角アイコンをCSSだけで作ります。 私自身はclip-path版を推しています。こちらの記事もどうぞ。 https:\u002F\u002Filr.jp\u002Ftech\u002F889 実装結果 解説 な [&hellip;]",{"ID":268,"title":269,"post_type":10,"post_type_label":11,"url":270,"date":271,"modified":59,"thumbnail":272,"thumb":272,"tag":273,"slug":275,"excerpt":276},143,"CSSでスクロールスナップを実装できるscroll-snap-type","\u002Ftech\u002F143\u002F","2021.08.02","\u002Fuploads\u002F2021\u002F08\u002Fimg_scroll-snap-type.png",[274],{"name":176,"slug":177,"url":178},"css%e3%81%a7%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab%e3%82%b9%e3%83%8a%e3%83%83%e3%83%97%e3%82%92%e5%ae%9f%e8%a3%85%e3%81%a7%e3%81%8d%e3%82%8bscroll-snap-type","要素ごとにスクロールするスクロールスナップをCSSで実装 実装結果 HTML 各要素A、B、C、D、Eを囲む要素を用意します。 CSS 囲った要素wrapにはscroll-snap-type: y mandatory;  [&hellip;]",{"ID":278,"title":279,"post_type":10,"post_type_label":11,"url":280,"date":281,"modified":262,"thumbnail":282,"thumb":282,"tag":283,"slug":285,"excerpt":286},108,"要素の背後にぼかしなどの効果を加えるbackdrop-filter","\u002Ftech\u002F108\u002F","2021.07.27","\u002Fuploads\u002F2021\u002F07\u002Fthumbnail_108-1200x662.jpg",[284],{"name":176,"slug":177,"url":178},"%e8%83%8c%e6%99%af%e3%81%ab","スタイルシートでもWindowsなどOSのウィンドウを開いたときに背後にぼかしがかかる効果を実装することができます。 実装結果 backdrop-filter HTML Style Sheet backdrop-filt [&hellip;]",{"ID":288,"title":289,"post_type":10,"post_type_label":11,"url":290,"date":291,"modified":59,"thumbnail":292,"thumb":292,"tag":293,"slug":295,"excerpt":296},83,"要素に連番を与えるcounter-increment","\u002Ftech\u002F83\u002F","2021.07.25","\u002Fuploads\u002F2021\u002F07\u002Fimg_counter-increment-1.png",[294],{"name":176,"slug":177,"url":178},"%e8%a6%81%e7%b4%a0%e3%81%ab%e9%80%a3%e7%95%aa%e3%82%92%e4%b8%8e%e3%81%88%e3%82%8bcounter-increment","olタグで連番を与えることはできますが、それ以外の要素でも与えることができます。 HTML html構造としては連番を与えたい要素を囲みます。クラス「list」「item」はユニークな文字列でOKです。 Style Sh [&hellip;]",{"ID":298,"title":299,"post_type":10,"post_type_label":11,"url":300,"date":301,"modified":262,"thumbnail":302,"thumb":302,"tag":303,"slug":305,"excerpt":306},43,"行数を指定して文末を「…」で省略するline-clamp","\u002Ftech\u002F43\u002F","2021.07.23","\u002Fuploads\u002F2021\u002F07\u002Fimg_line-clamp-1.png",[304],{"name":176,"slug":177,"url":178},"%e8%a1%8c%e6%95%b0%e3%82%92%e6%8c%87%e5%ae%9a%e3%81%97%e3%81%a6%e3%81%9d%e3%82%8c%e4%bb%a5%e9%99%8d%e3%82%92%e3%80%8c%e3%80%8d%e3%81%a7%e7%9c%81%e7%95%a5%e3%81%99%e3%82%8bline-clamp","CSSにはテキストを省略することができるtext-overflow: ellipsis;がありますが、1行しか省略することができません。 HTML text-overflow: ellipsis; 東京五輪の開会式を走る [&hellip;]",{"name":308,"slug":309,"url":310,"posts":311},"Docker","docker","\u002Ftag\u002Fdocker\u002F",[312],{"ID":313,"title":314,"post_type":10,"post_type_label":11,"url":315,"date":316,"modified":74,"thumbnail":317,"thumb":317,"tag":318,"slug":322,"excerpt":323},2367,"DockerでWordPress構築（ローカル仮想ドメイン版)","\u002Ftech\u002F2367\u002F","2025.10.30","\u002Fuploads\u002F2025\u002F10\u002Ftech2367-thumbnail-1200x675.png",[319,320,321],{"name":308,"slug":309,"url":310},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},"docker%e3%81%a7wordpress%e6%a7%8b%e7%af%89%ef%bc%88%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e4%bb%ae%e6%83%b3%e3%83%89%e3%83%a1%e3%82%a4%e3%83%b3%e7%89%88","概要 Macのローカルに仮装ドメインでWordPressの開発環境を構築します。 ・仮装ドメインでのアクセス・httpsでのアクセス・メール送信できるようにする・phpMyAdmin構築 構成 OSMacBook Pro [&hellip;]",{"name":115,"slug":116,"url":117,"posts":325},[326],{"ID":107,"title":108,"post_type":10,"post_type_label":11,"url":109,"date":110,"modified":110,"thumbnail":111,"thumb":111,"tag":327,"slug":120,"excerpt":121},[328,329,330,331],{"name":66,"slug":67,"url":68},{"name":115,"slug":116,"url":117},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"name":333,"slug":334,"url":335,"posts":336},"GSAP","gsap","\u002Ftag\u002Fgsap\u002F",[337],{"ID":338,"title":339,"post_type":10,"post_type_label":11,"url":340,"date":341,"modified":342,"thumbnail":186,"thumb":186,"tag":343,"slug":350,"excerpt":351},971,"スムーズスクロール","\u002Ftech\u002F971\u002F","2023.02.09","2023.11.14",[344,345,346],{"name":333,"slug":334,"url":335},{"name":18,"slug":19,"url":20},{"name":347,"slug":348,"url":349},"jQuery","jquery","\u002Ftag\u002Fjquery\u002F","%e3%82%b9%e3%83%a0%e3%83%bc%e3%82%ba%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab","概要 最近はアニメーションでGSAPをよく使用しているのですが、スムーズスクロールを実装させたい場合、jQueryのeaseScrollだとバッティングしているのか正常に動きません。GSAPにもScrollSmoothe [&hellip;]",{"name":200,"slug":201,"url":202,"posts":353},[354,366],{"ID":355,"title":356,"post_type":10,"post_type_label":11,"url":357,"date":358,"modified":359,"thumbnail":360,"thumb":360,"tag":361,"slug":364,"excerpt":365},1775,"dialog要素とtemplate要素を使用してモーダルウィンドウを作る","\u002Ftech\u002F1775\u002F","2023.07.29","2025.10.29","\u002Fuploads\u002F2023\u002F07\u002Fimg_window.webp",[362,363],{"name":200,"slug":201,"url":202},{"name":18,"slug":19,"url":20},"dialog%e8%a6%81%e7%b4%a0%e3%81%a8template%e8%a6%81%e7%b4%a0%e3%82%92%e4%bd%bf%e7%94%a8%e3%81%97%e3%81%a6%e3%83%a2%e3%83%bc%e3%83%80%e3%83%ab%e3%82%a6%e3%82%a3%e3%83%b3%e3%83%89%e3%82%a6%e3%82%92","概要 dialog要素でモーダルを表示しつつ、template要素で表示する内容を切り替えるモーダルウィンドを作成します。 サンプル ソース HTML dialogの中をformで囲っています。buttonにformme [&hellip;]",{"ID":192,"title":193,"post_type":10,"post_type_label":11,"url":194,"date":195,"modified":148,"thumbnail":196,"thumb":196,"tag":367,"slug":203,"excerpt":204},[368,369],{"name":176,"slug":177,"url":178},{"name":200,"slug":201,"url":202},{"name":153,"slug":154,"url":155,"posts":371},[372,382],{"ID":373,"title":374,"post_type":10,"post_type_label":11,"url":375,"date":167,"modified":240,"thumbnail":376,"thumb":376,"tag":377,"slug":380,"excerpt":381},855,"WordPressにインスタグラムの投稿一覧を表示","\u002Ftech\u002F855\u002F","\u002Fuploads\u002F2022\u002F12\u002Finsta_list-1200x806.webp",[378,379],{"name":153,"slug":154,"url":155},{"name":83,"slug":84,"url":85},"wordpress%e3%81%ab%e3%82%a4%e3%83%b3%e3%82%b9%e3%82%bf%e3%82%b0%e3%83%a9%e3%83%a0%e3%81%ae%e6%8a%95%e7%a8%bf%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba","概要 簡易的にWordPressにインスタクラムに投稿された写真の一覧を表示させる方法。 ※あらかじめアクセストークンを取得しておく必要があります。 Instagram Graph APIのビジネスアカウントIDとアクセ [&hellip;]",{"ID":144,"title":145,"post_type":10,"post_type_label":11,"url":146,"date":147,"modified":148,"thumbnail":149,"thumb":149,"tag":383,"slug":160,"excerpt":161},[384,385,386],{"name":66,"slug":67,"url":68},{"name":153,"slug":154,"url":155},{"name":157,"slug":158,"url":159},{"name":388,"slug":389,"url":390,"posts":391},"iPhone","iphone","\u002Ftag\u002Fiphone\u002F",[392],{"ID":393,"title":394,"post_type":10,"post_type_label":11,"url":395,"date":396,"modified":396,"thumbnail":397,"thumb":397,"tag":398,"slug":400,"excerpt":401},815,"iPhoneでウォレットのメインカードを入れ替える","\u002Ftech\u002F815\u002F","2022.12.01","\u002Fuploads\u002F2022\u002F12\u002Fiphone_wallet01.png",[399],{"name":388,"slug":389,"url":390},"iphone%e3%81%a7%e3%82%a6%e3%82%a9%e3%83%ac%e3%83%83%e3%83%88%e3%81%ae%e3%83%a1%e3%82%a4%e3%83%b3%e3%82%ab%e3%83%bc%e3%83%89%e3%82%92%e5%85%a5%e3%82%8c%e6%9b%bf%e3%81%88%e3%82%8b","概要 iPhoneでメインカードを入れ替える方法は２つあります。 ※iOS16.1.1 1.ウォレットアプリでの入れ替え 下になっているカードをタップしながら真ん中に持っていきます。 2.設定からの切り替え 設定を立ち上 [&hellip;]",{"name":18,"slug":19,"url":20,"posts":403},[404,415,424,437,451,461,470,479,483,495,505,513,518,525,534,539,550,560,569,579],{"ID":405,"title":406,"post_type":10,"post_type_label":11,"url":407,"date":14,"modified":408,"thumbnail":409,"thumb":409,"tag":410,"slug":413,"excerpt":414},2179,"Vueコンポーネント一括インポート","\u002Ftech\u002F2179\u002F","2026.06.16","\u002Fuploads\u002F2024\u002F06\u002Ftech2179-thumbnail-1200x675.png",[411,412],{"name":18,"slug":19,"url":20},{"name":22,"slug":23,"url":24},"vue%e3%82%b3%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%8d%e3%83%b3%e3%83%88%e4%b8%80%e6%8b%ac%e3%82%a4%e3%83%b3%e3%83%9d%e3%83%bc%e3%83%88","概要 個別にインポートしているコンポーネントを、一括で読み込むようにします。 施策 プラグイン作成 src\u002Fplugins\u002FcomponentsLoader.js componentsフォルダ内のvue拡張子のファイルを [&hellip;]",{"ID":416,"title":417,"post_type":10,"post_type_label":11,"url":418,"date":419,"modified":359,"thumbnail":186,"thumb":186,"tag":420,"slug":422,"excerpt":423},1942,"Intersection Observerでスクロールで要素の状態を変化させる","\u002Ftech\u002F1942\u002F","2023.12.20",[421],{"name":18,"slug":19,"url":20},"intersection-observer%e3%81%a7%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%a7%e8%a6%81%e7%b4%a0%e3%81%ae%e7%8a%b6%e6%85%8b%e3%82%92%e5%a4%89%e5%8c%96%e3%81%95%e3%81%9b%e3%82%8b","概要 スクロールに合わせて、タイトルや画像をふわっと表示させたい時は、スクロールイベントを設定して実装していましたが、Intersection Observerを使用することでシンプルに実装できます。 施策 HTML ペ [&hellip;]",{"ID":425,"title":426,"post_type":10,"post_type_label":11,"url":427,"date":428,"modified":359,"thumbnail":186,"thumb":186,"tag":429,"slug":435,"excerpt":436},1895,"SVG内の要素にfilterを適応させる","\u002Ftech\u002F1895\u002F","2023.11.16",[430,431],{"name":18,"slug":19,"url":20},{"name":432,"slug":433,"url":434},"SVG","svg","\u002Ftag\u002Fsvg\u002F","svg%e5%86%85%e3%81%ae%e8%a6%81%e7%b4%a0%e3%81%abfilter%e3%82%92%e9%81%a9%e5%bf%9c%e3%81%95%e3%81%9b%e3%82%8b","概要 CSSでSVG内にある要素にfilterを適応させようとすると、なぜかSafariで見ると適応されません。 静的なSVGだとdefsタグ内に設定するだけで良いのですが、動的にSVG内を変更したい場合などは適応するこ [&hellip;]",{"ID":438,"title":439,"post_type":10,"post_type_label":11,"url":440,"date":441,"modified":148,"thumbnail":442,"thumb":442,"tag":443,"slug":449,"excerpt":450},1831,"JavaScriptで擬似要素を操作する","\u002Ftech\u002F1831\u002F","2023.08.07","\u002Fuploads\u002F2023\u002F08\u002Fimg_before_after.webp",[444,445],{"name":18,"slug":19,"url":20},{"name":446,"slug":447,"url":448},"擬似要素","pseudo-element","\u002Ftag\u002Fpseudo-element\u002F","javascript%e3%81%a7%e6%93%ac%e4%bc%bc%e8%a6%81%e7%b4%a0%e3%82%92%e6%93%8d%e4%bd%9c%e3%81%99%e3%82%8b","概要 JavaScriptで擬似要素(:before、:after)を操作します。 取得 HTML CSS JavaScript 変更 JavaScript",{"ID":452,"title":453,"post_type":10,"post_type_label":11,"url":454,"date":455,"modified":148,"thumbnail":456,"thumb":456,"tag":457,"slug":459,"excerpt":460},1827,"2点間の緯度・経度の距離を求める","\u002Ftech\u002F1827\u002F","2023.08.06","\u002Fuploads\u002F2023\u002F08\u002Fimg_markers.webp",[458],{"name":18,"slug":19,"url":20},"2%e7%82%b9%e9%96%93%e3%81%ae%e7%b7%af%e5%ba%a6%e3%83%bb%e7%b5%8c%e5%ba%a6%e3%81%ae%e8%b7%9d%e9%9b%a2%e3%82%92%e6%b1%82%e3%82%81%e3%82%8b","概要 2点間の緯度・経度の距離を求めます。直線の距離なので、Googleマップなどの経路の距離ではないので注意が必要です。 参考文献 スクリプト 出力",{"ID":462,"title":463,"post_type":10,"post_type_label":11,"url":464,"date":455,"modified":359,"thumbnail":465,"thumb":465,"tag":466,"slug":468,"excerpt":469},1814,"JavaScriptで現在地を取得する","\u002Ftech\u002F1814\u002F","\u002Fuploads\u002F2023\u002F08\u002Fimg_marker.webp",[467],{"name":18,"slug":19,"url":20},"javascript%e3%81%a7%e7%8f%be%e5%9c%a8%e5%9c%b0%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b","概要 JavaScriptの関数Geolocation: getCurrentPosition()で現在地を取得します。 スクリプト 出力 テスト 現在地情報の取得を許可すると表示されます。",{"ID":471,"title":472,"post_type":10,"post_type_label":11,"url":473,"date":474,"modified":474,"thumbnail":186,"thumb":186,"tag":475,"slug":477,"excerpt":478},1807,"コロン(:)の入った要素や属性の情報を取得する","\u002Ftech\u002F1807\u002F","2023.08.04",[476],{"name":18,"slug":19,"url":20},"%e3%82%b3%e3%83%ad%e3%83%b3%e3%81%ae%e5%85%a5%e3%81%a3%e3%81%9f%e8%a6%81%e7%b4%a0%e3%82%84%e5%b1%9e%e6%80%a7%e3%81%ae%e6%83%85%e5%a0%b1%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b","概要 XMLなどを読み込んだ際、コロン(:)がついた要素や属性がある場合に取得する方法です。 取得方法 コロン(:)の前にバックスラッシュ(\\)を2つ入れます。 要素 属性",{"ID":355,"title":356,"post_type":10,"post_type_label":11,"url":357,"date":358,"modified":359,"thumbnail":360,"thumb":360,"tag":480,"slug":364,"excerpt":365},[481,482],{"name":200,"slug":201,"url":202},{"name":18,"slug":19,"url":20},{"ID":484,"title":485,"post_type":10,"post_type_label":11,"url":486,"date":92,"modified":92,"thumbnail":186,"thumb":186,"tag":487,"slug":493,"excerpt":494},1754,"日付のフォーマットを変更する","\u002Ftech\u002F1754\u002F",[488,489],{"name":18,"slug":19,"url":20},{"name":490,"slug":491,"url":492},"日付","date","\u002Ftag\u002Fdate\u002F","%e6%97%a5%e4%bb%98%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%83%e3%83%88%e3%82%92%e5%a4%89%e6%9b%b4%e3%81%99%e3%82%8b","概要 この関数を知らなかったのでメモ。 Date.prototype.toLocaleDateString() 内容 何も指定しない場合 言語コード指定 アメリカ 日本 オプションを指定 曜日を表示 年月日を日本語表記に [&hellip;]",{"ID":496,"title":497,"post_type":10,"post_type_label":11,"url":498,"date":499,"modified":148,"thumbnail":500,"thumb":500,"tag":501,"slug":503,"excerpt":504},1712,"数字に3桁ずつ、カンマを入れる","\u002Ftech\u002F1712\u002F","2023.07.19","\u002Fuploads\u002F2023\u002F07\u002Fimg_comma.webp",[502],{"name":18,"slug":19,"url":20},"%e6%95%b0%e5%ad%97%e3%81%ab3%e6%a1%81%e3%81%9a%e3%81%a4%e3%80%81%e3%82%ab%e3%83%b3%e3%83%9e%e3%82%92%e5%85%a5%e3%82%8c%e3%82%8b","概要 価格表示する際の数値、「10000」を「10,000」のように、数字に3桁ずつカンマの入った文字列に変換する関数 スクリプト 使用方法",{"ID":506,"title":507,"post_type":10,"post_type_label":11,"url":508,"date":499,"modified":499,"thumbnail":186,"thumb":186,"tag":509,"slug":511,"excerpt":512},1708,"ゼロパディング","\u002Ftech\u002F1708\u002F",[510],{"name":18,"slug":19,"url":20},"%e3%82%bc%e3%83%ad%e3%83%91%e3%83%87%e3%82%a3%e3%83%b3%e3%82%b0","概要 ゼロパディングとは、画面や帳票などで数値を表現する際、書式で指定した桁数に満たない部分をゼロで埋めることである。 ゼロパディングの「パディング」には埋める、詰め物をするといった意味がある。 ゼロパディングは、例えば [&hellip;]",{"ID":43,"title":18,"post_type":10,"post_type_label":11,"url":514,"date":44,"modified":499,"thumbnail":186,"thumb":186,"tag":515,"slug":19,"excerpt":517},"\u002Ftech\u002F1061\u002F",[516],{"name":18,"slug":19,"url":20},"カンマが入っている文字列を数値に変換 概要 価格表示する際の、「10,000」を「10000」のように数値に変換する関数 スクリプト 使用方法 改行コードを＜BR＞に変換 概要 改行コードを＜BR＞に変換 スクリプト 使 [&hellip;]",{"ID":8,"title":9,"post_type":10,"post_type_label":11,"url":12,"date":13,"modified":14,"thumbnail":15,"thumb":15,"tag":519,"slug":37,"excerpt":38},[520,521,522,523,524],{"name":18,"slug":19,"url":20},{"name":22,"slug":23,"url":24},{"name":26,"slug":27,"url":28},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},{"ID":526,"title":527,"post_type":10,"post_type_label":11,"url":528,"date":529,"modified":359,"thumbnail":186,"thumb":186,"tag":530,"slug":532,"excerpt":533},976,"HLS(HTTP Live Streaming)動画を再生する","\u002Ftech\u002F976\u002F","2023.02.26",[531],{"name":18,"slug":19,"url":20},"hlshttp-live-streaming%e5%8b%95%e7%94%bb%e3%82%92%e5%86%8d%e7%94%9f%e3%81%99%e3%82%8b","概要 HLS(HTTP Live Streaming)フォーマットの動画をWEBで再生する方法 HLSに変換 hls.jsを読み込み VIDEOタグ スクリプト",{"ID":338,"title":339,"post_type":10,"post_type_label":11,"url":340,"date":341,"modified":342,"thumbnail":186,"thumb":186,"tag":535,"slug":350,"excerpt":351},[536,537,538],{"name":333,"slug":334,"url":335},{"name":18,"slug":19,"url":20},{"name":347,"slug":348,"url":349},{"ID":540,"title":541,"post_type":10,"post_type_label":11,"url":542,"date":543,"modified":544,"thumbnail":545,"thumb":545,"tag":546,"slug":548,"excerpt":549},917,"ページのスクロールされている割合を表示させる","\u002Ftech\u002F917\u002F","2023.01.04","2023.01.05","\u002Fuploads\u002F2023\u002F01\u002Fpage-scroll-position-1200x737.png",[547],{"name":18,"slug":19,"url":20},"%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab%e3%81%95%e3%82%8c%e3%81%a6%e3%81%84%e3%82%8b%e5%89%b2%e5%90%88%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%95%e3%81%9b%e3%82%8b","概要 このサイトのヘッダーでも実装している、スクロールされている割合をページに表示させるJavaScriptを実装します。 ソース 解説 スクロール位置をwindow.scrollTop()で取得できるようにしています。 [&hellip;]",{"ID":551,"title":552,"post_type":10,"post_type_label":11,"url":553,"date":554,"modified":555,"thumbnail":186,"thumb":186,"tag":556,"slug":558,"excerpt":559},893,"マウスチェイサー","\u002Ftech\u002F893\u002F","2022.12.29","2024.01.14",[557],{"name":18,"slug":19,"url":20},"%e3%83%9e%e3%82%a6%e3%82%b9%e3%83%81%e3%82%a7%e3%82%a4%e3%82%b5%e3%83%bc","概要 マウスの動きに追随する、マウスチェイサー（英語にしただけ^^）を実装します。マウスに近づくにつれてゆっくり動くようにするのと、リンクにマウスオーバーで変形するようにもします。 ソース 解説 mp関数はマウスの座標を [&hellip;]",{"ID":561,"title":562,"post_type":10,"post_type_label":11,"url":563,"date":564,"modified":359,"thumbnail":186,"thumb":186,"tag":565,"slug":567,"excerpt":568},868,"JavaScriptで円運動","\u002Ftech\u002F868\u002F","2022.12.14",[566],{"name":18,"slug":19,"url":20},"javascript%e3%81%a7%e5%86%86%e9%81%8b%e5%8b%95","概要 JavaScriptで円を描くように要素が移動するアニメーションを実装します。 サンプル ソース 解説 x軸はCOSカーブ、y軸をSINカーブで実装します。degは角度、rは半径になります。",{"ID":570,"title":571,"post_type":10,"post_type_label":11,"url":572,"date":573,"modified":59,"thumbnail":574,"thumb":574,"tag":575,"slug":577,"excerpt":578},210,"ページ内スクロール","\u002Ftech\u002F210\u002F","2021.09.09","\u002Fuploads\u002F2021\u002F09\u002Fimg_page-scroll-1.png",[576],{"name":18,"slug":19,"url":20},"%e3%83%9a%e3%83%bc%e3%82%b8%e5%86%85%e3%82%b9%e3%82%af%e3%83%ad%e3%83%bc%e3%83%ab","今回はページ内スクロールのリンクとページトップへのスクロールボタンを作成します。 ページ内スクロール HTML CSS ページトップボタン HTML CSS JavaScript 解説 a[href^=&#8221;#& [&hellip;]",{"ID":580,"title":581,"post_type":10,"post_type_label":11,"url":582,"date":583,"modified":59,"thumbnail":584,"thumb":584,"tag":585,"slug":587,"excerpt":588},201,"ハンバーガメニュー","\u002Ftech\u002F201\u002F","2021.08.29","\u002Fuploads\u002F2021\u002F08\u002Fimg_hamburger-menu-1.png",[586],{"name":18,"slug":19,"url":20},"%e3%83%8f%e3%83%b3%e3%83%90%e3%83%bc%e3%82%ac%e3%83%a1%e3%83%8b%e3%83%a5%e3%83%bc","今回はハンバーガーメニューを作成します。 ヘッダーにハンバーガーメニュー配置 メニューを開いた状態 1.ハンバーガーメニュー部分 HTMLメニュー用にaタグを作成してその中にdivタグを追加しています。 CSSaタグはク [&hellip;]",{"name":347,"slug":348,"url":349,"posts":590},[591],{"ID":338,"title":339,"post_type":10,"post_type_label":11,"url":340,"date":341,"modified":342,"thumbnail":186,"thumb":186,"tag":592,"slug":350,"excerpt":351},[593,594,595],{"name":333,"slug":334,"url":335},{"name":18,"slug":19,"url":20},{"name":347,"slug":348,"url":349},{"name":597,"slug":598,"url":599,"posts":600},"Mac","mac","\u002Ftag\u002Fmac\u002F",[601],{"ID":602,"title":603,"post_type":10,"post_type_label":11,"url":604,"date":605,"modified":606,"thumbnail":186,"thumb":186,"tag":607,"slug":614,"excerpt":615},992,"Macでテキストを音声データ(MP3)に一括変換","\u002Ftech\u002F992\u002F","2023.04.06","2024.08.05",[608,609,613],{"name":597,"slug":598,"url":599},{"name":610,"slug":611,"url":612},"MP3","mp3","\u002Ftag\u002Fmp3\u002F",{"name":157,"slug":158,"url":159},"mac%e3%81%a7%e3%83%86%e3%82%ad%e3%82%b9%e3%83%88%e3%82%92%e9%9f%b3%e5%a3%b0%e3%83%87%e3%83%bc%e3%82%bfmp3%e3%81%ab%e4%b8%80%e6%8b%ac%e5%a4%89%e6%8f%9b","概要 Macでテキストを一括で音声データに変換する方法です。 テキストを音声データに変換(aiff) Macではテキストを右クリックで音声データに変換することができます。 1、テキストを選択して　＞　右クリック　＞　スポ [&hellip;]",{"name":610,"slug":611,"url":612,"posts":617},[618],{"ID":602,"title":603,"post_type":10,"post_type_label":11,"url":604,"date":605,"modified":606,"thumbnail":186,"thumb":186,"tag":619,"slug":614,"excerpt":615},[620,621,622],{"name":597,"slug":598,"url":599},{"name":610,"slug":611,"url":612},{"name":157,"slug":158,"url":159},{"name":157,"slug":158,"url":159,"posts":624},[625,635,640],{"ID":626,"title":627,"post_type":10,"post_type_label":11,"url":628,"date":629,"modified":148,"thumbnail":630,"thumb":630,"tag":631,"slug":633,"excerpt":634},1803,"Node.jsのバージョン管理","\u002Ftech\u002F1803\u002F","2023.08.02","\u002Fuploads\u002F2023\u002F08\u002Fimg_nodejs.webp",[632],{"name":157,"slug":158,"url":159},"node-js%e3%81%ae%e3%83%90%e3%83%bc%e3%82%b8%e3%83%a7%e3%83%b3%e7%ae%a1%e7%90%86","概要 毎回忘れるのでメモです。nodebrewがインストールされていることが前提となります。 コマンド 現在のバージョン確認 インストール可能なバージョン確認 インストールされているバージョン確認 バージョンを指定してイ [&hellip;]",{"ID":602,"title":603,"post_type":10,"post_type_label":11,"url":604,"date":605,"modified":606,"thumbnail":186,"thumb":186,"tag":636,"slug":614,"excerpt":615},[637,638,639],{"name":597,"slug":598,"url":599},{"name":610,"slug":611,"url":612},{"name":157,"slug":158,"url":159},{"ID":144,"title":145,"post_type":10,"post_type_label":11,"url":146,"date":147,"modified":148,"thumbnail":149,"thumb":149,"tag":641,"slug":160,"excerpt":161},[642,643,644],{"name":66,"slug":67,"url":68},{"name":153,"slug":154,"url":155},{"name":157,"slug":158,"url":159},{"name":646,"slug":646,"url":647,"posts":648},"note","\u002Ftag\u002Fnote\u002F",[649],{"ID":650,"title":651,"post_type":10,"post_type_label":11,"url":652,"date":653,"modified":654,"thumbnail":655,"thumb":655,"tag":656,"slug":659,"excerpt":660},782,"WordPressにnoteの記事一覧を埋め込む","\u002Ftech\u002F782\u002F","2022.11.30","2023.06.14","\u002Fuploads\u002F2022\u002F11\u002Ftit_note-1200x528.png",[657,658],{"name":646,"slug":646,"url":647},{"name":83,"slug":84,"url":85},"wordpress%e3%81%abnote%e3%81%ae%e8%a8%98%e4%ba%8b%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b","概要 noteのRSSを読み込んでWordPressに埋め込む方法 APIへのアクセスを減らすためTransients APIを使用して一時保存する noteのRSS RSSのURLはクリエーターページのプロフィールエリ [&hellip;]",{"name":79,"slug":80,"url":81,"posts":662},[663],{"ID":71,"title":72,"post_type":10,"post_type_label":11,"url":73,"date":74,"modified":74,"thumbnail":75,"thumb":75,"tag":664,"slug":86,"excerpt":87},[665,666,667],{"name":66,"slug":67,"url":68},{"name":79,"slug":80,"url":81},{"name":83,"slug":84,"url":85},{"name":97,"slug":97,"url":98,"posts":669},[670,675,681,696,702,713],{"ID":313,"title":314,"post_type":10,"post_type_label":11,"url":315,"date":316,"modified":74,"thumbnail":317,"thumb":317,"tag":671,"slug":322,"excerpt":323},[672,673,674],{"name":308,"slug":309,"url":310},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"ID":89,"title":90,"post_type":10,"post_type_label":11,"url":91,"date":92,"modified":92,"thumbnail":93,"thumb":93,"tag":676,"slug":104,"excerpt":105},[677,678,679,680],{"name":66,"slug":67,"url":68},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"name":101,"slug":102,"url":103},{"ID":682,"title":683,"post_type":10,"post_type_label":11,"url":684,"date":685,"modified":685,"thumbnail":686,"thumb":686,"tag":687,"slug":694,"excerpt":695},1717,"WordPressにQiitaの記事一覧を表示する","\u002Ftech\u002F1717\u002F","2023.07.20","\u002Fuploads\u002F2023\u002F07\u002Fimg_qiita-1200x682.webp",[688,689,693],{"name":97,"slug":97,"url":98},{"name":690,"slug":691,"url":692},"Qiita","qiita","\u002Ftag\u002Fqiita\u002F",{"name":83,"slug":84,"url":85},"wordpress%e3%81%abqiita%e3%81%ae%e8%a8%98%e4%ba%8b%e4%b8%80%e8%a6%a7%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%99%e3%82%8b","概要 WordPressにQiitaの記事一覧を表示する方法 ※事前にQiitaのアクセストークンの発行の取得をする必要があります。 検索部分 「qiita_data」の部分はTransients APIで保存するときの [&hellip;]",{"ID":107,"title":108,"post_type":10,"post_type_label":11,"url":109,"date":110,"modified":110,"thumbnail":111,"thumb":111,"tag":697,"slug":120,"excerpt":121},[698,699,700,701],{"name":66,"slug":67,"url":68},{"name":115,"slug":116,"url":117},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"ID":703,"title":704,"post_type":10,"post_type_label":11,"url":705,"date":706,"modified":706,"thumbnail":707,"thumb":707,"tag":708,"slug":711,"excerpt":712},1115,"WordPressページネーションを自作する","\u002Ftech\u002F1115\u002F","2023.06.12","\u002Fuploads\u002F2021\u002F08\u002Fimg_feed-1.png",[709,710],{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},"wordpress%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%8d%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%82%92%e8%87%aa%e4%bd%9c%e3%81%99%e3%82%8b","概要 このWEBサイトで使用しているページネーション ソース",{"ID":714,"title":715,"post_type":10,"post_type_label":11,"url":716,"date":717,"modified":717,"thumbnail":707,"thumb":707,"tag":718,"slug":723,"excerpt":724},1090,"カスタム投稿タイプのフィードを作成する","\u002Ftech\u002F1090\u002F","2023.05.31",[719,720,721,722],{"name":97,"slug":97,"url":98},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":138,"slug":139,"url":140},"%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e6%8a%95%e7%a8%bf%e3%82%bf%e3%82%a4%e3%83%97%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%82%92%e4%bd%9c%e6%88%90%e3%81%99%e3%82%8b","概要 RSSへのリンクを追加してカスタム投稿タイプのフィードを表示させます。 下記URLでも良いのですが、せっかくなのでリライトルールを使用して独自URLを作成します。 スクリプト リライトルールの反映 WordPres [&hellip;]",{"name":690,"slug":691,"url":692,"posts":726},[727],{"ID":682,"title":683,"post_type":10,"post_type_label":11,"url":684,"date":685,"modified":685,"thumbnail":686,"thumb":686,"tag":728,"slug":694,"excerpt":695},[729,730,731],{"name":97,"slug":97,"url":98},{"name":690,"slug":691,"url":692},{"name":83,"slug":84,"url":85},{"name":129,"slug":130,"url":131,"posts":733},[734,740,747],{"ID":714,"title":715,"post_type":10,"post_type_label":11,"url":716,"date":717,"modified":717,"thumbnail":707,"thumb":707,"tag":735,"slug":723,"excerpt":724},[736,737,738,739],{"name":97,"slug":97,"url":98},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":138,"slug":139,"url":140},{"ID":46,"title":47,"post_type":10,"post_type_label":11,"url":123,"date":13,"modified":124,"thumbnail":125,"thumb":125,"tag":741,"slug":141,"excerpt":142},[742,743,744,745,746],{"name":66,"slug":67,"url":68},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},{"name":138,"slug":139,"url":140},{"ID":748,"title":749,"post_type":10,"post_type_label":11,"url":750,"date":751,"modified":752,"thumbnail":707,"thumb":707,"tag":753,"slug":757,"excerpt":758},168,"フィードカスタマイズ","\u002Ftech\u002F168\u002F","2021.08.12","2023.05.30",[754,755,756],{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":138,"slug":139,"url":140},"%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%9e%e3%82%a4%e3%82%ba","フィードにカスタム投稿タイプの更新を含める デフォルトではフィードにはカスタム投稿タイプは表示されないので下記を追加します。 フィードのauthorを変更 dc:creatorに表示される内容はログインのときのIDと同じ [&hellip;]",{"name":432,"slug":433,"url":434,"posts":760},[761],{"ID":425,"title":426,"post_type":10,"post_type_label":11,"url":427,"date":428,"modified":359,"thumbnail":186,"thumb":186,"tag":762,"slug":435,"excerpt":436},[763,764],{"name":18,"slug":19,"url":20},{"name":432,"slug":433,"url":434},{"name":22,"slug":23,"url":24,"posts":766},[767,778,782],{"ID":768,"title":769,"post_type":10,"post_type_label":11,"url":770,"date":14,"modified":74,"thumbnail":771,"thumb":771,"tag":772,"slug":776,"excerpt":777},2186,"【改訂】Vueで暗号化・復号化を実装する","\u002Ftech\u002F2186\u002F","\u002Fuploads\u002F2024\u002F06\u002Ftech2186-thumbnail-1200x675.png",[773,774,775],{"name":22,"slug":23,"url":24},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},"%e3%80%90%e6%94%b9%e8%a8%82%e3%80%91vue-js%e3%81%a7%e6%9a%97%e5%8f%b7%e5%8c%96%e3%83%bb%e5%be%a9%e5%8f%b7%e5%8c%96%e3%82%92%e5%ae%9f%e8%a3%85%e3%81%99%e3%82%8b","概要 Vue.js用の暗号化・復号化のモジュールを作成しました。 ソース 暗号化キーは直接書いても良いですし、.envファイルに設定しても良いと思います。 使用方法 暗号化 復号化",{"ID":405,"title":406,"post_type":10,"post_type_label":11,"url":407,"date":14,"modified":408,"thumbnail":409,"thumb":409,"tag":779,"slug":413,"excerpt":414},[780,781],{"name":18,"slug":19,"url":20},{"name":22,"slug":23,"url":24},{"ID":8,"title":9,"post_type":10,"post_type_label":11,"url":12,"date":13,"modified":14,"thumbnail":15,"thumb":15,"tag":783,"slug":37,"excerpt":38},[784,785,786,787,788],{"name":18,"slug":19,"url":20},{"name":22,"slug":23,"url":24},{"name":26,"slug":27,"url":28},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},{"name":83,"slug":84,"url":85,"posts":790},[791,796,801,810,816,821,827,835,839,849,855,862,866,870,875,883,892,902,907],{"ID":71,"title":72,"post_type":10,"post_type_label":11,"url":73,"date":74,"modified":74,"thumbnail":75,"thumb":75,"tag":792,"slug":86,"excerpt":87},[793,794,795],{"name":66,"slug":67,"url":68},{"name":79,"slug":80,"url":81},{"name":83,"slug":84,"url":85},{"ID":313,"title":314,"post_type":10,"post_type_label":11,"url":315,"date":316,"modified":74,"thumbnail":317,"thumb":317,"tag":797,"slug":322,"excerpt":323},[798,799,800],{"name":308,"slug":309,"url":310},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"ID":802,"title":803,"post_type":10,"post_type_label":11,"url":804,"date":805,"modified":805,"thumbnail":186,"thumb":186,"tag":806,"slug":808,"excerpt":809},1992,"WordPressでサイドバーに目次を表示させる","\u002Ftech\u002F1992\u002F","2024.01.05",[807],{"name":83,"slug":84,"url":85},"wordpress%e3%81%a7%e3%82%b5%e3%82%a4%e3%83%89%e3%83%90%e3%83%bc%e3%81%ab%e7%9b%ae%e6%ac%a1%e3%82%92%e8%a1%a8%e7%a4%ba%e3%81%95%e3%81%9b%e3%82%8b","概要 このサイトでも使用していますが、記事の内容を目次にしてサイドバーに表示する方法を解説します。 また、スクロール位置がわかりやすいように、目次のリンクがアクティブになるようにします。 プラグイン プラグインインストー [&hellip;]",{"ID":89,"title":90,"post_type":10,"post_type_label":11,"url":91,"date":92,"modified":92,"thumbnail":93,"thumb":93,"tag":811,"slug":104,"excerpt":105},[812,813,814,815],{"name":66,"slug":67,"url":68},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"name":101,"slug":102,"url":103},{"ID":682,"title":683,"post_type":10,"post_type_label":11,"url":684,"date":685,"modified":685,"thumbnail":686,"thumb":686,"tag":817,"slug":694,"excerpt":695},[818,819,820],{"name":97,"slug":97,"url":98},{"name":690,"slug":691,"url":692},{"name":83,"slug":84,"url":85},{"ID":107,"title":108,"post_type":10,"post_type_label":11,"url":109,"date":110,"modified":110,"thumbnail":111,"thumb":111,"tag":822,"slug":120,"excerpt":121},[823,824,825,826],{"name":66,"slug":67,"url":68},{"name":115,"slug":116,"url":117},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"ID":828,"title":829,"post_type":10,"post_type_label":11,"url":830,"date":706,"modified":706,"thumbnail":707,"thumb":707,"tag":831,"slug":833,"excerpt":834},1118,"WP-CLIでWordPressの改ざんチェック","\u002Ftech\u002F1118\u002F",[832],{"name":83,"slug":84,"url":85},"wp-cli%e3%81%a7wordpress%e3%81%ae%e6%94%b9%e3%81%96%e3%82%93%e3%83%81%e3%82%a7%e3%83%83%e3%82%af","概要 WP-CLIを導入することによって、コマンドでWordPressの改ざんチェックを行います。 インストール https:\u002F\u002Fwp-cli.org\u002Fja\u002F wp-cli.pharをダウンロードします。 wp-cli. [&hellip;]",{"ID":703,"title":704,"post_type":10,"post_type_label":11,"url":705,"date":706,"modified":706,"thumbnail":707,"thumb":707,"tag":836,"slug":711,"excerpt":712},[837,838],{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"ID":840,"title":841,"post_type":10,"post_type_label":11,"url":842,"date":843,"modified":844,"thumbnail":707,"thumb":707,"tag":845,"slug":847,"excerpt":848},1094,"WordPressでauthor名を分からないようにする","\u002Ftech\u002F1094\u002F","2023.06.01","2024.06.26",[846],{"name":83,"slug":84,"url":85},"wordpress%e3%81%a7author%e5%90%8d%e3%82%92%e5%88%86%e3%81%8b%e3%82%89%e3%81%aa%e3%81%84%e3%82%88%e3%81%86%e3%81%ab%e3%81%99%e3%82%8b","概要 WordPressのソースの中にはauthor名表示される箇所があります。そのauthor名から管理画面へログインされる可能性があるのでソースに表示されないようにします。 authorページをリダイレクト \u002F?au [&hellip;]",{"ID":714,"title":715,"post_type":10,"post_type_label":11,"url":716,"date":717,"modified":717,"thumbnail":707,"thumb":707,"tag":850,"slug":723,"excerpt":724},[851,852,853,854],{"name":97,"slug":97,"url":98},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":138,"slug":139,"url":140},{"ID":46,"title":47,"post_type":10,"post_type_label":11,"url":123,"date":13,"modified":124,"thumbnail":125,"thumb":125,"tag":856,"slug":141,"excerpt":142},[857,858,859,860,861],{"name":66,"slug":67,"url":68},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},{"name":138,"slug":139,"url":140},{"ID":373,"title":374,"post_type":10,"post_type_label":11,"url":375,"date":167,"modified":240,"thumbnail":376,"thumb":376,"tag":863,"slug":380,"excerpt":381},[864,865],{"name":153,"slug":154,"url":155},{"name":83,"slug":84,"url":85},{"ID":650,"title":651,"post_type":10,"post_type_label":11,"url":652,"date":653,"modified":654,"thumbnail":655,"thumb":655,"tag":867,"slug":659,"excerpt":660},[868,869],{"name":646,"slug":646,"url":647},{"name":83,"slug":84,"url":85},{"ID":163,"title":164,"post_type":10,"post_type_label":11,"url":165,"date":166,"modified":167,"thumbnail":168,"thumb":168,"tag":871,"slug":173,"excerpt":174},[872,873,874],{"name":66,"slug":67,"url":68},{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},{"ID":876,"title":877,"post_type":10,"post_type_label":11,"url":878,"date":250,"modified":250,"thumbnail":707,"thumb":707,"tag":879,"slug":881,"excerpt":882},451,"プラグイン「Simple CSS」で任意の場所にスタイルシートを書き出したい","\u002Ftech\u002F451\u002F",[880],{"name":83,"slug":84,"url":85},"%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%80%8csimple-css%e3%80%8d%e3%81%a7%e4%bb%bb%e6%84%8f%e3%81%ae%e5%a0%b4%e6%89%80%e3%81%ab%e3%82%b9%e3%82%bf%e3%82%a4%e3%83%ab%e3%82%b7%e3%83%bc%e3%83%88","はじめに 「Simple CSS」というプラグインを使用すると記事ごとにスタイルシートを書くことができるのですが、書き出し場所がheadタグ内になります。 しかし、「barba.js」などでSPA（シングルページアプリケ [&hellip;]",{"ID":884,"title":885,"post_type":10,"post_type_label":11,"url":886,"date":887,"modified":544,"thumbnail":186,"thumb":186,"tag":888,"slug":890,"excerpt":891},939,"アイキャッチにデフォルト画像を設定","\u002Ftech\u002F939\u002F","2022.01.05",[889],{"name":83,"slug":84,"url":85},"%e3%82%a2%e3%82%a4%e3%82%ad%e3%83%a3%e3%83%83%e3%83%81%e3%81%ab%e3%83%87%e3%83%95%e3%82%a9%e3%83%ab%e3%83%88%e7%94%bb%e5%83%8f%e3%82%92%e8%a8%ad%e5%ae%9a","概要 保存する時にアイキャッチの指定がない場合、指定した画像をアイキャッチとして保存するように設定します。 画像をアップロード アイキャッチに使用したい画像をメディアにアップロード 画像IDを調べる アップロードした画像 [&hellip;]",{"ID":893,"title":894,"post_type":10,"post_type_label":11,"url":895,"date":896,"modified":59,"thumbnail":897,"thumb":897,"tag":898,"slug":900,"excerpt":901},195,"WordPressカスタムナビゲーション","\u002Ftech\u002F195\u002F","2021.08.28","\u002Fuploads\u002F2021\u002F08\u002Fimg_custom-navigation-1.png",[899],{"name":83,"slug":84,"url":85},"wordpress%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%a0%e3%83%8a%e3%83%93%e3%82%b2%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3","今回は管理画面で編集できるグローバルメニューをカスタマイズします。 グローバルメニュー 管理画面 メニュー項目を管理画面でカスタマイズすることができます。 1.functions.phpにregister_nav_men [&hellip;]",{"ID":748,"title":749,"post_type":10,"post_type_label":11,"url":750,"date":751,"modified":752,"thumbnail":707,"thumb":707,"tag":903,"slug":757,"excerpt":758},[904,905,906],{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":138,"slug":139,"url":140},{"ID":908,"title":909,"post_type":10,"post_type_label":11,"url":910,"date":911,"modified":59,"thumbnail":912,"thumb":912,"tag":913,"slug":915,"excerpt":916},156,"ログインフォームカスタマイズ","\u002Ftech\u002F156\u002F","2021.08.11","\u002Fuploads\u002F2021\u002F08\u002Fwp-loginform-1.png",[914],{"name":83,"slug":84,"url":85},"%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%82%ab%e3%82%b9%e3%82%bf%e3%83%9e%e3%82%a4%e3%82%ba","WordPressのログインフォームのカスタマイズします。 手順 フック「login_enqueue_scripts」で外部スタイルシートを読み込み 外部スタイルシートでロゴを変更 ロゴのリンク先を変更 1.フック「lo [&hellip;]",{"name":918,"slug":919,"url":920,"posts":921},"X(旧Twitter)","xtwitter","\u002Ftag\u002Fxtwitter\u002F",[922,934],{"ID":923,"title":924,"post_type":10,"post_type_label":11,"url":925,"date":555,"modified":14,"thumbnail":186,"thumb":186,"tag":926,"slug":932,"excerpt":933},2062,"Xプレミアムでプロフィールページにコミュニティページへのリンクを追加する","\u002Ftech\u002F2062\u002F",[927,928],{"name":918,"slug":919,"url":920},{"name":929,"slug":930,"url":931},"Xプレミアム","xpremium","\u002Ftag\u002Fxpremium\u002F","x%e3%83%97%e3%83%ac%e3%83%9f%e3%82%a2%e3%83%a0%e3%81%a7%e3%83%97%e3%83%ad%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ab%e3%82%b3%e3%83%9f%e3%83%a5%e3%83%8b%e3%83%86%e3%82%a3","概要 Xプレミアムにアップグレードすると、プロフィールページにコミュニティへのリンクを追加することができます。 施策 「コミュニティ」をクリック 自身が作成したコミュニティをクリック 右上の管理ツールをクリック 「コミュ [&hellip;]",{"ID":935,"title":936,"post_type":10,"post_type_label":11,"url":937,"date":555,"modified":555,"thumbnail":186,"thumb":186,"tag":938,"slug":941,"excerpt":942},2047,"Xプレミアムでプロフィールページのいいねを非表示にする","\u002Ftech\u002F2047\u002F",[939,940],{"name":918,"slug":919,"url":920},{"name":929,"slug":930,"url":931},"x%e3%83%97%e3%83%ac%e3%83%9f%e3%82%a2%e3%83%a0%e3%81%a7%e3%83%97%e3%83%ad%e3%83%95%e3%82%a3%e3%83%bc%e3%83%ab%e3%83%9a%e3%83%bc%e3%82%b8%e3%81%ae%e3%81%84%e3%81%84%e3%81%ad%e3%82%92%e9%9d%9e%e8%a1%a8","概要 Xプレミアムにアップグレードすると、プロフィールページの「いいね」タブを非表示にすることができます。どこ投稿に「いいね」をしたかを知られないようにしたいときには有効です。 施策 「もっと見る」をクリック 「設定とサ [&hellip;]",{"name":929,"slug":930,"url":931,"posts":944},[945,949],{"ID":923,"title":924,"post_type":10,"post_type_label":11,"url":925,"date":555,"modified":14,"thumbnail":186,"thumb":186,"tag":946,"slug":932,"excerpt":933},[947,948],{"name":918,"slug":919,"url":920},{"name":929,"slug":930,"url":931},{"ID":935,"title":936,"post_type":10,"post_type_label":11,"url":937,"date":555,"modified":555,"thumbnail":186,"thumb":186,"tag":950,"slug":941,"excerpt":942},[951,952],{"name":918,"slug":919,"url":920},{"name":929,"slug":930,"url":931},{"name":134,"slug":135,"url":136,"posts":954},[955,963,970,978,987,997],{"ID":956,"title":957,"post_type":10,"post_type_label":11,"url":958,"date":185,"modified":124,"thumbnail":125,"thumb":125,"tag":959,"slug":961,"excerpt":962},1934,"【公式】他人のYouTubeのチャンネルIDを調べる","\u002Ftech\u002F1934\u002F",[960],{"name":134,"slug":135,"url":136},"%e3%80%90%e5%85%ac%e5%bc%8f%e3%80%91%e4%bb%96%e4%ba%ba%e3%81%aeyoutube%e3%81%ae%e3%83%81%e3%83%a3%e3%83%b3%e3%83%8d%e3%83%abid%e3%82%92%e8%aa%bf%e3%81%b9%e3%82%8b","概要 以前、他人のYouTubeのチャンネルIDを調べるという記事を書いたのですが、PCのチャンネルページから調べられるようになったので、共有します。 以前の記事 https:\u002F\u002Filr.jp\u002Ftech\u002F48 [&hellip;]",{"ID":46,"title":47,"post_type":10,"post_type_label":11,"url":123,"date":13,"modified":124,"thumbnail":125,"thumb":125,"tag":964,"slug":141,"excerpt":142},[965,966,967,968,969],{"name":66,"slug":67,"url":68},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},{"name":138,"slug":139,"url":140},{"ID":971,"title":972,"post_type":10,"post_type_label":11,"url":973,"date":396,"modified":396,"thumbnail":125,"thumb":125,"tag":974,"slug":976,"excerpt":977},825,"YouTubeアプリでフィード(サムネイル)が自動再生されるのを止める","\u002Ftech\u002F825\u002F",[975],{"name":134,"slug":135,"url":136},"youtube%e3%82%a2%e3%83%97%e3%83%aa%e3%81%a7%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%82%b5%e3%83%a0%e3%83%8d%e3%82%a4%e3%83%ab%e3%81%8c%e8%87%aa%e5%8b%95%e5%86%8d%e7%94%9f%e3%81%95%e3%82%8c%e3%82%8b","概要 YouTubeアプリを起動したときにフィード(サムネイル)が自動で再生されてしまいます。WiFi環境なら問題ないのですが、外出中などに勝手に再生されるのは通信量もかかるので止めるようにします。 操作方法 アプリ右上 [&hellip;]",{"ID":979,"title":980,"post_type":10,"post_type_label":11,"url":981,"date":982,"modified":359,"thumbnail":125,"thumb":125,"tag":983,"slug":985,"excerpt":986},765,"YouTube動画のキーワードを調べる","\u002Ftech\u002F765\u002F","2022.11.25",[984],{"name":134,"slug":135,"url":136},"youtube%e5%8b%95%e7%94%bb%e3%81%ae%e3%82%ad%e3%83%bc%e3%83%af%e3%83%bc%e3%83%89%e3%82%92%e8%aa%bf%e3%81%b9%e3%82%8b","概要 YouTubeの動画がどんなキーワードを指定しているか気になりますよね。そんなキーワードを調べる方法です。 ソースから確認 ソースで確認する場合、キーワードタグで確認することができます。 確認できるフォームを作りま [&hellip;]",{"ID":988,"title":989,"post_type":10,"post_type_label":11,"url":990,"date":991,"modified":992,"thumbnail":125,"thumb":125,"tag":993,"slug":995,"excerpt":996},485,"他人のYouTubeのチャンネルIDを調べる","\u002Ftech\u002F485\u002F","2022.10.29","2026.06.15",[994],{"name":134,"slug":135,"url":136},"%e4%bb%96%e4%ba%ba%e3%81%aeyoutube%e3%81%ae%e3%83%81%e3%83%a3%e3%83%b3%e3%83%8d%e3%83%abid%e3%82%92%e8%aa%bf%e3%81%b9%e3%82%8b","概要 自分自身のチャンネルIDはYouTube Studio＞カスタマイズ＞基本情報 で確認することができますが、他人のチャンネルでカスタム URLを使用されているチャンネルはチャンネルIDがわかりません。 ソースから確 [&hellip;]",{"ID":163,"title":164,"post_type":10,"post_type_label":11,"url":165,"date":166,"modified":167,"thumbnail":168,"thumb":168,"tag":998,"slug":173,"excerpt":174},[999,1000,1001],{"name":66,"slug":67,"url":68},{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},{"name":138,"slug":139,"url":140,"posts":1003},[1004,1010,1017],{"ID":714,"title":715,"post_type":10,"post_type_label":11,"url":716,"date":717,"modified":717,"thumbnail":707,"thumb":707,"tag":1005,"slug":723,"excerpt":724},[1006,1007,1008,1009],{"name":97,"slug":97,"url":98},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":138,"slug":139,"url":140},{"ID":46,"title":47,"post_type":10,"post_type_label":11,"url":123,"date":13,"modified":124,"thumbnail":125,"thumb":125,"tag":1011,"slug":141,"excerpt":142},[1012,1013,1014,1015,1016],{"name":66,"slug":67,"url":68},{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":134,"slug":135,"url":136},{"name":138,"slug":139,"url":140},{"ID":748,"title":749,"post_type":10,"post_type_label":11,"url":750,"date":751,"modified":752,"thumbnail":707,"thumb":707,"tag":1018,"slug":757,"excerpt":758},[1019,1020,1021],{"name":129,"slug":130,"url":131},{"name":83,"slug":84,"url":85},{"name":138,"slug":139,"url":140},{"name":26,"slug":27,"url":28,"posts":1023},[1024],{"ID":8,"title":9,"post_type":10,"post_type_label":11,"url":12,"date":13,"modified":14,"thumbnail":15,"thumb":15,"tag":1025,"slug":37,"excerpt":38},[1026,1027,1028,1029,1030],{"name":18,"slug":19,"url":20},{"name":22,"slug":23,"url":24},{"name":26,"slug":27,"url":28},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},{"name":34,"slug":35,"url":36,"posts":1032},[1033,1038],{"ID":768,"title":769,"post_type":10,"post_type_label":11,"url":770,"date":14,"modified":74,"thumbnail":771,"thumb":771,"tag":1034,"slug":776,"excerpt":777},[1035,1036,1037],{"name":22,"slug":23,"url":24},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},{"ID":8,"title":9,"post_type":10,"post_type_label":11,"url":12,"date":13,"modified":14,"thumbnail":15,"thumb":15,"tag":1039,"slug":37,"excerpt":38},[1040,1041,1042,1043,1044],{"name":18,"slug":19,"url":20},{"name":22,"slug":23,"url":24},{"name":26,"slug":27,"url":28},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},{"name":101,"slug":102,"url":103,"posts":1046},[1047],{"ID":89,"title":90,"post_type":10,"post_type_label":11,"url":91,"date":92,"modified":92,"thumbnail":93,"thumb":93,"tag":1048,"slug":104,"excerpt":105},[1049,1050,1051,1052],{"name":66,"slug":67,"url":68},{"name":97,"slug":97,"url":98},{"name":83,"slug":84,"url":85},{"name":101,"slug":102,"url":103},{"name":446,"slug":447,"url":448,"posts":1054},[1055],{"ID":438,"title":439,"post_type":10,"post_type_label":11,"url":440,"date":441,"modified":148,"thumbnail":442,"thumb":442,"tag":1056,"slug":449,"excerpt":450},[1057,1058],{"name":18,"slug":19,"url":20},{"name":446,"slug":447,"url":448},{"name":490,"slug":491,"url":492,"posts":1060},[1061],{"ID":484,"title":485,"post_type":10,"post_type_label":11,"url":486,"date":92,"modified":92,"thumbnail":186,"thumb":186,"tag":1062,"slug":493,"excerpt":494},[1063,1064],{"name":18,"slug":19,"url":20},{"name":490,"slug":491,"url":492},{"name":30,"slug":31,"url":32,"posts":1066},[1067,1072],{"ID":768,"title":769,"post_type":10,"post_type_label":11,"url":770,"date":14,"modified":74,"thumbnail":771,"thumb":771,"tag":1068,"slug":776,"excerpt":777},[1069,1070,1071],{"name":22,"slug":23,"url":24},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},{"ID":8,"title":9,"post_type":10,"post_type_label":11,"url":12,"date":13,"modified":14,"thumbnail":15,"thumb":15,"tag":1073,"slug":37,"excerpt":38},[1074,1075,1076,1077,1078],{"name":18,"slug":19,"url":20},{"name":22,"slug":23,"url":24},{"name":26,"slug":27,"url":28},{"name":30,"slug":31,"url":32},{"name":34,"slug":35,"url":36},1781665770801]