<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technology &#8211; OptiCode.Lab</title>
	<atom:link href="https://opticode-lab.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>https://opticode-lab.com</link>
	<description>だれもが使える、最適化されたサイトを構築するための技術研究所</description>
	<lastBuildDate>Mon, 30 Mar 2026 04:47:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>WordPress環境でCloudFrontを使用する場合に必要なカスタムポリシー設定</title>
		<link>https://opticode-lab.com/technology/1587/</link>
					<comments>https://opticode-lab.com/technology/1587/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Mon, 30 Mar 2026 04:45:09 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[CloudFront]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://opticode-lab.com/?p=1587</guid>

					<description><![CDATA[先日、AWS環境で高可用性構成を作成した際にCloudFrontを使用しました。その中で設定に手間取ったポイントがありましたので備忘録も兼ねて記しておきます。 作成したAWS環境で高可用性構成 というのが何か知りたい方は [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>先日、AWS環境で高可用性構成を作成した際にCloudFrontを使用しました。<br>その中で設定に手間取ったポイントがありましたので備忘録も兼ねて記しておきます。</p>



<p>作成したAWS環境で高可用性構成 というのが何か知りたい方は以下もご覧いただけますと幸いです。</p>


<a href="https://opticode-lab.com/works/1543/" class="opti-link-card">  <img decoding="async" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260318_130945_01-600x335.webp" alt="" class="opti-link-card__thumb">  <div class="opti-link-card__body">    <div class="opti-link-card__title">Fargate + Single AZ RDSで構築する、高可用性&amp;コスト最適化WordPress AWS構成</div>    <div class="opti-link-card__meta">opticode.lab.com</div>  </div></a>



<p>なお、AWSプランや管理画面はよく変更されるため、2026年3月時点の設定であることをご理解ください。</p>



<h2 class="wp-block-heading">CloudFrontとは？サービス内容を解説</h2>



<p><strong>CloudFront</strong>は、AWS（Amazon Web Services）が提供する<strong>CDN（Content Delivery Network）</strong>サービスです。<br>簡単に言うと、「世界中に配置されたキャッシュサーバーを使って、Webサイトの画像や動画、HTMLなどのコンテンツをユーザーに素早く届ける仕組み」です。<br>競合サービスとしては<strong>Cloudflare</strong>、<strong>Akamai</strong>、<strong>Fastly</strong>などがありますが、AWSで環境を構築しているならCloudFront一択です。</p>



<h3 class="wp-block-heading">CloudFrontを導入するメリット</h3>



<p>導入すると以下のようなメリットがあります。</p>



<ul class="wp-block-list">
<li><strong>ページキャッシュ：</strong>ページや画像などをキャッシュしてユーザーへ渡すため、オリジンであるWebサーバー等へのアクセスを抑えてコストダウン&amp;負荷耐性が向上</li>



<li><strong>エッジロケーション：</strong>ユーザーと物理的に近いデータセンターにキャッシュを保持してユーザーへ渡すため、表示速度の向上につながる</li>



<li><strong>AWSコンポーネントとの親和性：</strong>AWS連携が容易でサービス間でのデータ転送量が安い</li>



<li><strong>無料枠：</strong>小規模なサイトであれば実質無料で使用できることも珍しくない</li>



<li><strong>セキュリティ向上：</strong>CloudFrontが間に入りユーザーがWebサーバーを直接見ないためセキュリティが向上・WAF設定も可能</li>
</ul>



<p>無料枠を超えるアクセス数の多いサイトは費用がかかりますが、高スペックなサーバーを動かし続けるより安く済む場合が多いでしょう。</p>



<h2 class="wp-block-heading">WordPressでCloudFrontを使用する場合の注意点</h2>



<p>メリットは大きいですが、注意点もあります。</p>



<ul class="wp-block-list">
<li>ログイン状態のページがキャッシュされる</li>



<li>カスタムポリシーを使用できるプランに制限がある</li>
</ul>



<h3 class="wp-block-heading">ログイン状態のページがキャッシュされる問題と解消方法</h3>



<p>CloudFrontはユーザーがページへアクセスした場合に、<br>キャッシュがあればキャッシュを返す<br>キャッシュが無ければオリジンからページを取得しキャッシュを生成<br>という動作を行います。</p>



<p>そこで問題になるのが、ログイン状態のユーザーです。<br>WordPressでログインをしている場合、ページ上部の admin bar のようにWordPressログイン状態にのみ表示される要素が存在するため、これをCloudFrontがキャッシュしてしまうと一般ユーザーにも admin bar が表示されるような事態となってしまいます。</p>



<p>つまり、<strong>WordPressにログインしたユーザーをキャッシュ対象外</strong>にする必要があります。</p>



<p>設定にはCloudFrontのカスタムポリシー作成が必須となりますので、以下の手順でカスタムポリシーを作成のうえCloudFrontのビヘイビアに登録します。</p>



<ul class="wp-block-list">
<li>AWSコンソールからCloudFrontの管理画面を開き、左メニューからポリシーの管理ページを表示</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="318" height="411" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_03.webp" alt="AWSコンソールCloudFrontの左メニューからポリシーページへアクセス" class="wp-image-1591"/><figcaption class="wp-element-caption">CloudFront：左メニュー</figcaption></figure>
</div>


<ul class="wp-block-list">
<li>ページ下部の「キャッシュポリシーを作成」</li>



<li>cookie「指定された cookie を含める」を選択し以下の3つを追加しポリシーを作成する<br><code>comment_author_*</code>、<code>wp-postpass_*</code>、<code>wordpress_logged_in_*</code></li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="303" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_02-1024x303.webp" alt="カスタムポリシーでcookieを許可する" class="wp-image-1590" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_02-1024x303.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_02-600x177.webp 600w, https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_02-768x227.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_02.webp 1082w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">ポリシー設定：cookieの追加</figcaption></figure>



<ul class="wp-block-list">
<li>CloudFrontのディストリビューション、ビヘイビア設定の「デフォルト(*)」を選択し編集</li>



<li>キャッシュポリシーで作成したカスタムポリシーを選択、オリジンリクエストポリシーをAllViewerに設定し保存</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="334" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_01-1024x334.webp" alt="ディストリビューションで作成したポリシーを使用する" class="wp-image-1593" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_01-1024x334.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_01-600x196.webp 600w, https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_01-768x251.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/20260330_133322_01.webp 1137w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">ディストリビューション：キャッシュポリシーの設定</figcaption></figure>



<p>これはWordPressのログインセッションに使用するcookieを持っていればログインユーザーとして扱い、ページをキャッシュしない&amp;キャッシュを表示しない という設定です。</p>



<h3 class="wp-block-heading">カスタムポリシーを使用できるプランに制限がある</h3>



<p>なんと、CloudFrontのディストリビューションが定額料金プランの<strong>Freeプラン(0$)・Proプラン(月額15$)はカスタムポリシーが選択できず</strong>、<strong>ビジネスプラン(月額200$)以上</strong>を選べという案内が表示されます。<br>学習目的や収益の少ないサイトでこの負担は現実的ではありません。</p>



<p>しかし、<strong>従量課金プラン</strong>(Pay as you go) を使用すればビジネスプランでなくともカスタムポリシーを使用することが可能です。<br>従量課金プランでも<strong>一定の範囲内であれば無料</strong>で使用が可能ですので、学習用や小規模なサイトであれば従量課金プランで始めて、アクセス数が増え収益が出るならビジネスプランへの変更を検討するのがよさそうです。</p>



<p>無料枠については今後変更される可能性があるため、<a href="https://aws.amazon.com/jp/cloudfront/pricing/pay-as-you-go/" target="_blank" rel="noreferrer noopener nofollow">AWS公式の情報</a>をご確認のうえ検討してください。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>最初は定額プランのFreeプランで設定していたのでカスタムポリシーが設定できず手間取りました。<br>学習目的でお金をかけたくなかったため、従量課金プランでも無料枠があってくれてラッキーでした。</p>



<p>とはいえCloudFront自体はかなり安価なので、よほど記事がバズったりしなければ高額な請求などは無いかなとは思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1587/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pagespeed Insightsのスコア低下の原因がGoogleタグが原因だった話と気にしすぎない話</title>
		<link>https://opticode-lab.com/technology/1525/</link>
					<comments>https://opticode-lab.com/technology/1525/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Thu, 12 Mar 2026 06:56:05 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[SEO]]></category>
		<guid isPermaLink="false">https://opticode-lab.com/?p=1525</guid>

					<description><![CDATA[当サイトで速度改善のためPagespeed Insightsを使用し表示速度を計測しておりました。 そこで少しだけハマった点があったので備忘録も兼ねて書き起こしておきます。 実施した速度改善 速度改善のために以下のような [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>当サイトで速度改善のため<a href="https://pagespeed.web.dev/" target="_blank" rel="noreferrer noopener nofollow">Pagespeed Insights</a>を使用し表示速度を計測しておりました。</p>



<p>そこで少しだけハマった点があったので備忘録も兼ねて書き起こしておきます。</p>



<h2 class="wp-block-heading">実施した速度改善</h2>



<p>速度改善のために以下のような施策を実施しました。</p>



<ol class="wp-block-list">
<li><strong>画像のWebP化：</strong><br>ツールを使用して画像を手元でWebPに変換したうえでWordPressにアップ</li>



<li><strong>キャッシュプラグインの導入：</strong><br>WP Fastest Cache を導入</li>



<li><strong>CSS統合：</strong><br>サイト内外の複数読み込んでいたCSSを1つのファイルに統合</li>



<li><strong>Googleフォントをサーバーで配信</strong>：<br>フォントをダウンロードして /assets 配下に格納</li>
</ol>



<p><strong>画像のWebP化</strong>は以下のツールを使用してjpgやpngをWebPに変換しています。<br>複数の画像を圧縮したzipファイルをそのまま放り込んでも大丈夫なツールです。</p>


<a href="https://opticode-lab.com/technology/1500/" class="opti-link-card">  <img decoding="async" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260308_004856_01-600x385.webp" alt="" class="opti-link-card__thumb">  <div class="opti-link-card__body">    <div class="opti-link-card__title">ブログの画像処理を劇的に時短！ドラッグ＆ドロップで一括WebP変換＆リサイズを自動化する方法（Windows向け）</div>    <div class="opti-link-card__meta">opticode.lab.com</div>  </div></a>



<h2 class="wp-block-heading">速度改善の成果</h2>



<p>なんとここまでやって<strong>58点</strong>。</p>



<p>サイト側で重い処理を実行しているならともかく、WordPress投稿ページ + キャッシュ でこのスコアはどういうことなのか。<br>1時間ほどコードとにらめっこしてました。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="970" height="764" src="https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-02.webp" alt="PageSpeed Insightsでスマートフォンのパフォーマンスが58点のキャプチャ" class="wp-image-1526" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-02.webp 970w, https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-02-600x473.webp 600w, https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-02-768x605.webp 768w" sizes="auto, (max-width: 970px) 100vw, 970px" /><figcaption class="wp-element-caption">PageSpeed Insights：スマートフォンのパフォーマンス</figcaption></figure>
</div>


<h2 class="wp-block-heading">高速化一番のネックはGoogleのタグだった</h2>



<p>いろいろ試した後にGoogleTagManagerのみ触れていなかったので、これを一時的に削除して速度を計測してみました。</p>



<p>ビンゴでした。GTMタグを削除するだけで<strong>96点</strong>まで跳ね上がりました。</p>



<p>GoogleTagManagerにはGoogleAnalyticsとGoogleAdSenceの2タグのみ登録していました。<br>まさかGoogle提供のPageSpeed Insightsで最も評価を下げていたのはGoogleのタグであり壮大なマッチポンプでした。<br>特にAdSenceくん、重すぎ。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="755" src="https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-01-1024x755.webp" alt="Googleタグマネージャーを削除したあとのPageSpeed Insightsスコアが96点" class="wp-image-1527" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-01-1024x755.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-01-600x443.webp 600w, https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-01-768x567.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/pagespeed-article-01.webp 1083w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">PageSpeed Insights：GTMタグを削除したスコア</figcaption></figure>
</div>


<h2 class="wp-block-heading">Pagespeed Insightsに縛られすぎるべきではない</h2>



<p>特にPagespeed Insights のスマートフォン パフォーマンスは<strong>非常に低いスコアが出る傾向</strong>にあります。<br>これは 低スペックスマホ + 弱回線 という日本では一般的ではない環境を想定した計測であるためです。</p>



<p>以下のGoogle公式ドキュメントにあるように、検索結果に与える影響はPagespeed Insightsよりも<strong>実際に優れたページエクスペリエンスを提供できているか</strong>。というのがカギのようです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Google のコア ランキング システムは、優れたページ エクスペリエンスを提供するコンテンツを高く評価するように設計されています。サイト所有者が Google のシステムで高い評価を得るには、ページ エクスペリエンスの限られた要素のみにとらわれないようにすることが必要です。多くの要素について検討し、全般的に優れたページ エクスペリエンスを提供できているかどうかを確認してください。</p>
<cite><a href="https://developers.google.com/search/docs/appearance/page-experience?hl=ja" target="_blank" rel="noreferrer noopener nofollow">引用：ページ エクスペリエンスが Google 検索の検索結果に与える影響について</a></cite></blockquote>



<p>具体的には<strong>Pagespeed Insights上部の「実際のユーザーの環境で評価する」</strong>や<strong>Google Search Consoleの「ウェブに関する主な指標」</strong>を重視するのがよさそうです。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>Pagespeed Insightsのスコアが低くなる要素が見当たらない場合は<strong>Googleタグを一時的に削除して計測</strong>しなおしてみてください。</p>



<p>また、Pagespeed Insightsのスコアが低いこと自体はそこまで神経質になる必要はなく、あくまでもGoogle Search Consoleの「ウェブに関する主な指標」などで評価が低かった場合の<strong>改善ポイントを見つけるために使用</strong>するものと考えたほうがよさそうです。</p>



<p>Googleのタグを使用してGoogleに指摘されるという手の上で踊らされている状態ですが、僕たちがウェブで生きていくには頭を垂れるしかないという虚しさがありました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1525/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ブログの画像処理を劇的に時短！ドラッグ＆ドロップで一括WebP変換＆リサイズを自動化する方法（Windows向け）</title>
		<link>https://opticode-lab.com/technology/1500/</link>
					<comments>https://opticode-lab.com/technology/1500/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 15:52:20 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[作業効率化]]></category>
		<guid isPermaLink="false">https://opticode-lab.com/?p=1500</guid>

					<description><![CDATA[ブログ記事を書くとき、スマホで撮った写真をPCに移して、1枚ずつリサイズして、WebPに変換して…という手作業、面倒に感じていませんか？ 今回は、そんな手間を完全にゼロにする「Windowsのドラッグ＆ドロップだけで、複 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>ブログ記事を書くとき、スマホで撮った写真をPCに移して、1枚ずつリサイズして、WebPに変換して…という手作業、面倒に感じていませんか？</p>



<p>今回は、そんな手間を完全にゼロにする<strong>「Windowsのドラッグ＆ドロップだけで、複数画像やZIPを自動でWebP化＆リサイズする自作ツール」</strong>の作り方をご紹介します。</p>



<p>少し面倒な手順もありますが、作ったあとはフォルダごと他の作業者に共有すればチーム全体で効率化できますので是非お試しください。</p>



<h2 class="wp-block-heading">まずは知っておきたい「WebP（ウェッピー）」の基本</h2>



<p>WebPは、Googleが開発した次世代の画像フォーマットです。従来のJPEGやPNGと比べて、<strong>画質を保ったままファイルサイズを25〜34%ほど軽くできる</strong>のが最大の特徴です。</p>



<p>現在では<strong>Chrome、Safari、Edge、Firefoxなど、主要なブラウザはすべてWebPに完全対応</strong>しています。さらに、<strong>WordPressもバージョン5.8以降から標準でWebPアップロードをサポート</strong>しているため、プラグインなしでそのままメディアライブラリに追加可能です。</p>



<p>サイトの表示速度アップ（SEO対策）のためにも、これからのブログ運営に<strong>WebPは必須</strong>と言えます。</p>



<h2 class="wp-block-heading">この自動化ツールでできること</h2>



<p>今回作成するツールを使うと、以下のような処理が一瞬で完了します。</p>



<ul class="wp-block-list">
<li><strong>ドラッグ＆ドロップで一括処理:</strong><br>複数画像でも、Googleフォトからダウンロードした「ZIPファイル」でも、そのまま放り込むだけでOK。</li>



<li><strong>自動リサイズ:</strong><br>横幅が1200pxを超える画像は、自動で比率を維持したまま1200pxに縮小（小さい画像はそのまま）。</li>



<li><strong>SEO対策バッチリの自動命名:</strong><br>指定したキーワード（例: blog-article）を使って、blog-article-01.webp のように綺麗な連番ファイル名に自動変更。</li>



<li><strong>元ファイルの自動お掃除:</strong> 処理が終わったら、元の画像ファイルやZIPファイルを自動削除することも可能。</li>
</ul>



<p>自動リサイズが横幅1200pxとなっているのは、Google自身が <strong>Google Discover に表示する画像として「幅 1,200 ピクセル以上、高解像度（300K 以上）、アスペクト比: 16:9」を推奨</strong>しているためです。</p>



<p>詳しくは <a href="https://developers.google.com/search/docs/appearance/google-discover?hl=ja#how-content-appears-in-discover" target="_blank" rel="noreferrer noopener nofollow">Google Discover 公式ドキュメント</a> をご覧ください。</p>



<p>それでは、具体的な作成手順（所要時間：約5分）を解説します。</p>



<h3 class="wp-block-heading">ステップ1：Google公式ツール「cwebp」をダウンロード</h3>



<p>WebP変換の心臓部となる、Google公式のツールを用意します。</p>



<ol class="wp-block-list">
<li><a href="https://developers.google.com/speed/webp/docs/precompiled?hl=ja" target="_blank" rel="noreferrer noopener nofollow">Google DevelopersのWebP公式サイト</a> にアクセスします。</li>



<li>Windows用のzipファイル（libwebp-x.x.x-windows-x64.zip）をダウンロードして解凍します。</li>



<li>解凍したフォルダの bin フォルダ内にある <strong>cwebp.exe</strong> というファイルだけを取り出します。</li>



<li>PC上の使いやすい場所（デスクトップなど）に「画像変換」などの専用フォルダを作り、そこに cwebp.exe を入れます。</li>
</ol>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="544" height="319" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260308_002551_02.webp" alt="エクスプローラーにGoogleからダウンロードしたツールを配置" class="wp-image-1503"/><figcaption class="wp-element-caption">エクスプローラー：ツールを配置</figcaption></figure>
</div>


<h3 class="wp-block-heading">ステップ2：実行用バッチファイルを作成</h3>



<p>次に、ドラッグ＆ドロップを受け付ける窓口となるファイルを作ります。</p>



<ol class="wp-block-list">
<li>メモ帳を開き、以下のコードをコピーして貼り付けます。</li>
</ol>



<pre class="wp-block-code"><code>@echo off
setlocal
cd /d "%~dp0"

echo ===================================================
echo   画像をWebP（ウェッピー）に変換します
echo ===================================================

powershell -NoProfile -ExecutionPolicy Bypass -File "%~dp02_convert_logic.ps1" %*

pause</code></pre>



<p>2. ファイル名を <strong>1_ここへドロップ.bat</strong> として、<strong>「Shift-JIS」形式</strong>で先ほどの cwebp.exe と同じフォルダに保存します。</p>



<h3 class="wp-block-heading">ステップ3：処理ロジックのファイルを作成</h3>



<p>最後に、裏側で画像を処理するメインのプログラムを作ります。</p>



<ol class="wp-block-list">
<li>再度メモ帳を開き、以下のコードをコピーして貼り付けます。</li>
</ol>



<pre class="wp-block-code"><code># 2_convert_logic.ps1

$DroppedItems = $args
$cwebp = Join-Path $PSScriptRoot "cwebp.exe"

if (-not (Test-Path $cwebp)) {
    Write-Host "&#091;エラー] cwebp.exeが見つかりません。同じフォルダに入れてください。" -ForegroundColor Red
    return
}

Write-Host "【設定を入力してください】" -ForegroundColor Cyan
$prefix = Read-Host "1. ファイル名の頭につける文字（例: travel-tips）※空欄なら日付になります"
$deleteOption = Read-Host "2. 変換が終わった後、元の古い画像を削除しますか？ (y/n)"
$dateStr = Get-Date -Format "yyyyMMdd_HHmmss"

$outDir = Join-Path $PSScriptRoot "Converted_WebP"
if (-not (Test-Path $outDir)) { New-Item -ItemType Directory -Path $outDir | Out-Null }

$imagesToProcess = @()
$tempDirs = @()
$failedSources = @()

foreach ($item in $DroppedItems) {
    if (-not (Test-Path $item)) { continue }
    $ext = &#091;System.IO.Path]::GetExtension($item).ToLower()

    if ($ext -eq '.zip') {
        Write-Host "ZIPファイルを解凍しています...: $(&#091;System.IO.Path]::GetFileName($item))"
        $tempDir = Join-Path $env:TEMP (&#091;guid]::NewGuid().ToString())
        Expand-Archive -Path $item -DestinationPath $tempDir -Force
        $tempDirs += $tempDir
        $extractedImages = Get-ChildItem -Path $tempDir -Recurse | Where-Object { $_.Extension -match '\.(jpg|jpeg|png|webp)$' }
        foreach ($img in $extractedImages) {
            $imagesToProcess += &#091;PSCustomObject]@{ Path = $img.FullName; Source = $item }
        }
    }
    elseif ($ext -match '\.(jpg|jpeg|png|webp)$') {
        $imagesToProcess += &#091;PSCustomObject]@{ Path = $item; Source = $item }
    }
}

if ($imagesToProcess.Count -eq 0) {
    Write-Host "変換できる画像が見つかりませんでした。画像をドロップしてください。" -ForegroundColor Yellow
    return
}

Add-Type -AssemblyName System.Drawing
$count = 1
Write-Host "`n--- 変換を開始します (画質: 85) ---" -ForegroundColor Cyan

foreach ($item in $imagesToProcess) {
    $file = $item.Path
    $source = $item.Source
    try {
        $img = &#091;System.Drawing.Image]::FromFile($file)
        $width = $img.Width
        $img.Dispose()

        $newName = if (&#091;string]::IsNullOrWhiteSpace($prefix)) { "${dateStr}_" + $count.ToString("D2") + ".webp" } else { "${prefix}-" + $count.ToString("D2") + ".webp" }
        $outPath = Join-Path $outDir $newName
        
        Write-Host "変換中: $(&#091;System.IO.Path]::GetFileName($file)) -> $newName"

        # WebP変換実行
        if ($width -gt 1200) {
            &amp; $cwebp -q 80 -m 6 -resize 1200 0 $file -o $outPath *>$null
        } else {
            &amp; $cwebp -q 80 -m 6 $file -o $outPath *>$null
        }

        if (-not (Test-Path $outPath) -or (Get-Item $outPath).Length -eq 0) { throw "失敗" }
        $count++
    } catch {
        Write-Host "【失敗】: $($file) は変換できませんでした。" -ForegroundColor Red
        if ($failedSources -notcontains $source) { $failedSources += $source }
    }
}

# 後片付け
foreach ($td in $tempDirs) { Remove-Item -Path $td -Recurse -Force -ErrorAction SilentlyContinue }

# 元ファイルのクリーンアップ
if ($deleteOption -match '^&#091;yY]') {
    Write-Host "`n--- 元ファイルの整理 ---" -ForegroundColor Cyan
    foreach ($source in $DroppedItems) {
        if ($failedSources -contains $source) {
            Write-Host "残しました（エラーがあったため）: $(&#091;System.IO.Path]::GetFileName($source))" -ForegroundColor Yellow
        } elseif (Test-Path $source) {
            Remove-Item -Path $source -Force -Recurse -ErrorAction SilentlyContinue
            Write-Host "削除しました: $(&#091;System.IO.Path]::GetFileName($source))"
        }
    }
}

Write-Host "`nすべて完了しました！" -ForegroundColor Green
Write-Host "『Converted_WebP』フォルダを確認してください。"</code></pre>



<p>2. ファイル名を <strong>2_convert_logic.ps1</strong> とし、同じく cwebp.exe やバッチファイルがあるのと同じフォルダに<strong>「Shift-JIS」形式</strong>で保存します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="509" height="321" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260308_002551_01.webp" alt="エクスプローラーにShift-jisで保存したツールを配置" class="wp-image-1504"/><figcaption class="wp-element-caption">エクスプローラー：ツールを配置</figcaption></figure>
</div>


<p>3. これで完成です！フォルダ内は以下の3つのファイルが並んでいる状態になります。</p>



<ul class="wp-block-list">
<li>cwebp.exe</li>



<li>1_ここへドロップ.bat</li>



<li>2_convert_logic.ps1</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="503" height="322" src="https://opticode-lab.com/wp-content/uploads/2026/03/20260307_225230_01.webp" alt="ツールに必要な3ファイルをフォルダにひとまとめ" class="wp-image-1502"/><figcaption class="wp-element-caption">エクスプローラー：ツール3ファイル</figcaption></figure>
</div>


<h3 class="wp-block-heading">ツールの使い方</h3>



<p>使い方は驚くほど簡単です。</p>



<ol class="wp-block-list">
<li>変換したい画像（JPG/PNG）やZIPファイルを、<strong>1_ここへドロップ.bat のアイコンにドラッグ＆ドロップ</strong>します。</li>



<li>黒い画面が開くので、ファイル名を入力（例: travel-tips）してEnterを押します。（何も入力せずにEnterを押すと日付になります）</li>



<li>「元の画像やZIPを削除しますか？ (y/n)」と聞かれるので、削除してよければ y 、残すなら n（またはそのままEnter）を押します。</li>



<li>全自動で処理が進み、同じフォルダ内に Converted_WebP というフォルダが作られ、そこに最適化されたWebP画像が連番で保存されます。</li>
</ol>



<p>あとはこれをWordPressにアップロードするだけ！これまでの「画像ソフトを開いて、リサイズして、別名で保存して…」という作業が数秒で終わるようになります。ぜひ試してみてください。</p>



<p>エクスプローラーの「表示」→「特大アイコン」で<strong>アイコンを最大化</strong>するとドラッグ&amp;ドロップしやすくていいと思います。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="375" src="https://opticode-lab.com/wp-content/uploads/2026/03/aiueo-01-1024x375.webp" alt="エクスプローラーで特大表示に切り替える" class="wp-image-1501" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/aiueo-01-1024x375.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/aiueo-01-600x220.webp 600w, https://opticode-lab.com/wp-content/uploads/2026/03/aiueo-01-768x281.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/aiueo-01.webp 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">エクスプローラー：特大アイコン</figcaption></figure>



<p>よく使うことになると思うので、このフォルダをエクスプローラー左に<strong>ショートカットで登録</strong>することをオススメします。</p>


<a href="https://opticode-lab.com/technology/1492/" class="opti-link-card">  <img decoding="async" src="https://opticode-lab.com/wp-content/uploads/2026/03/ci6lajci6lajci6-600x373.webp" alt="" class="opti-link-card__thumb">  <div class="opti-link-card__body">    <div class="opti-link-card__title">Windows11 エクスプローラーのショートカットに表示されるフォルダを手動で管理する方法</div>    <div class="opti-link-card__meta">opticode.lab.com</div>  </div></a>



<h2 class="wp-block-heading">うまく動かないときは</h2>



<p>以下の点について見直してみてください。</p>



<ul class="wp-block-list">
<li>Googleからダウンロードしたツールが <strong>cwebp.exe</strong> で間違いないか </li>



<li>保存したツールのファイル名があっているか<br><strong>1_ここへドロップ.bat</strong>　と　<strong>2_convert_logic.ps1</strong>　です。</li>



<li>保存したツールが<strong>「Shift-JIS」形式 </strong>で保存されているか</li>



<li>3つのファイルが<strong>同じフォルダ内</strong>に存在しているか</li>
</ul>



<h2 class="wp-block-heading">ツールを使うにあたっての注意点</h2>



<p>以下の点は少し注意が必要です。</p>



<ul class="wp-block-list">
<li>WebPに変換するにあたって少しだけ画質を落としております。</li>



<li>一部の古いIEなど未対応ブラウザ（シェア合計1%前後）ではWebPが表示できません。<br>サイトで使用する画像を完全にWebPのみに切り替えるかは慎重にご判断ください。</li>



<li>同じファイル名で保存すると、Converted_WebP フォルダ内に存在した<strong>同名ファイルに上書き保存</strong>されます。先にサーバーにアップしておくか、別のファイル名を指定するなどで回避してください。</li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p>今回は作成したWebP変換ツールをご紹介しました。</p>



<p>当サイトは開発ブログやガジェット紹介などがメインなので、使用しているブラウザも新しいだろうということで完全WebPに切り替えています。</p>



<p>本来はGoogleAnalyticsなどで未対応ブラウザからのアクセス数を確認すべきですが、まだアクセスがほぼ無いのでサイトのジャンルで決めてしまいました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1500/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows11 エクスプローラーのショートカットに表示されるフォルダを手動で管理する方法</title>
		<link>https://opticode-lab.com/technology/1492/</link>
					<comments>https://opticode-lab.com/technology/1492/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 12:20:56 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[作業効率化]]></category>
		<guid isPermaLink="false">https://opticode-lab.com/?p=1492</guid>

					<description><![CDATA[Windows11のエクスプローラー左側にはいくつかのフォルダへのショートカットが配置されています。作業用に自分で選んだものを並べたいですが、Windows 11 バージョン 22H2 以降だと不要なフォルダが混ざったり [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Windows11のエクスプローラー左側にはいくつかのフォルダへのショートカットが配置されています。<br>作業用に自分で選んだものを並べたいですが、Windows 11 バージョン 22H2 以降だと不要なフォルダが混ざったり、必要なフォルダが無くなることがあります。</p>



<p>今回はこの<strong>クイックアクセスを固定化し、追加・削除する方法</strong>をまとめます。</p>



<h2 class="wp-block-heading">クイックアクセスのフォルダが消える&amp;不要なフォルダが入る</h2>



<p>Windows11は、<strong>デフォルトでは使用頻度の高いフォルダを自動でクイックアクセスへ登録</strong>する仕様となっています。<br>これが余計なおせっかいで、以下のようにどのフォルダかわからないものが登録されたり、必要なフォルダが除外されます。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"><div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="376" height="1024" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-210845-376x1024.webp" alt="重複する「opticode-lab」と普遍的なフォルダ名の「image」が登録されてしまったクイックアクセス" class="wp-image-1497" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-210845-376x1024.webp 376w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-210845.webp 441w" sizes="auto, (max-width: 376px) 100vw, 376px" /><figcaption class="wp-element-caption">エクスプローラー：クイックアクセス</figcaption></figure>
</div></div>



<div class="wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<p>2つの opticode-lab はそれぞれ別のフォルダなので「どっちのフォルダだよ！」となります。<br>よくある images や wordpress のようなフォルダが登録されると「どのサイトのフォルダだよ！」となります。</p>
</div>
</div>



<p>これを防ぐために、<strong>自動で登録・削除されないよう設定が必要</strong>です。</p>



<h2 class="wp-block-heading">クイックアクセスが自動で更新されないようにする設定</h2>



<p>エクスプローラーのメニューバー右の「・・・」を開き、「<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" />オプション」を開きます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="305" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204423-1024x305.webp" alt="エクスプローラー メニューバー右端にあるオプション" class="wp-image-1494" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204423-1024x305.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204423-600x179.webp 600w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204423-768x229.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204423.webp 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">エクスプローラー：オプション位置</figcaption></figure>



<p>フォルダーオプション内の以下項目のチェックを外し、「適用」「OK」を押下して設定を閉じます。</p>



<ul class="wp-block-list">
<li>最近使用したファイルを表示する(E)</li>



<li>使用頻度の高いフォルダーを表示する(Q)</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="817" height="1024" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204345-817x1024.webp" alt="フォルダーオプション内で変更が必要な2つの項目" class="wp-image-1496" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204345-817x1024.webp 817w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204345-479x600.webp 479w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204345-768x963.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204345.webp 957w" sizes="auto, (max-width: 817px) 100vw, 817px" /><figcaption class="wp-element-caption">エクスプローラー：フォルダーオプション</figcaption></figure>



<p>これで自動更新が無くなります。</p>



<h2 class="wp-block-heading">クイックアクセスにフォルダを登録・削除する方法</h2>



<p>更新を止めた後は必要なものだけ手動で登録・削除しましょう。</p>



<h3 class="wp-block-heading">クイックアクセスへ登録する方法</h3>



<p>エクスプローラー上部のアドレスバーから登録したいフォルダをドラッグ&amp;ドロップで登録ができます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="589" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204828-1024x589.webp" alt="アドレスバーのフォルダをドラッグ&amp;ドロップしてクイックアクセスに登録" class="wp-image-1495" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204828-1024x589.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204828-600x345.webp 600w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204828-768x442.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-07-204828.webp 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">エクスプローラー：ショートカットを登録</figcaption></figure>



<h3 class="wp-block-heading">クイックアクセスから削除する方法</h3>



<p>クイックアクセス内の削除したいフォルダを右クリックし、「クイックアクセスからピン留めを外す」から削除が可能です。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>開発していると同じようなディレクトリ構造・フォルダ名を扱うことが多いため、どのフォルダか非常に判り辛くなります。</p>



<p>固定・手動管理にしましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1492/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>プラグインを使用せずWordPressで構造化データを実装する方法</title>
		<link>https://opticode-lab.com/technology/1476/</link>
					<comments>https://opticode-lab.com/technology/1476/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Thu, 05 Mar 2026 09:21:59 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://opticode-lab.com/?p=1476</guid>

					<description><![CDATA[この記事では、WordPress環境でレビューブログに設定すべき構造化データとプラグインを使用せずに実装する方法について解説します。実際に当サイトを開発・運営した経験をもとに書いています。 この記事を読むと： リッチリザ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>この記事では、WordPress環境でレビューブログに設定すべき構造化データとプラグインを使用せずに実装する方法について解説します。<br>実際に当サイトを開発・運営した経験をもとに書いています。</p>



<p>この記事を読むと：</p>



<ul class="wp-block-list">
<li>Googleの検索結果で投稿が<strong>リッチリザルトで表示</strong>できる</li>



<li><strong>クリック率が上がる</strong></li>



<li>Googleに正確な情報が伝えられ<strong>SEO評価向上</strong>につながる</li>
</ul>



<h2 class="wp-block-heading">リッチリザルトとは？</h2>



<p>リッチリザルトとは、検索結果において、通常の「青いリンクと少しの説明文」だけでなく、<strong>画像、星の評価、よくある質問などが視覚的にリッチ（豪華）に表示される仕組み</strong>のことです。</p>



<p>百聞は一見に如かずということで、リッチリザルトのサンプル画像をご覧ください。<br>ニュース がカルーセルで表示されているかと思います。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="615" height="1024" src="https://opticode-lab.com/wp-content/uploads/2026/03/220759-1-615x1024.webp" alt="「アメリカ」と検索した場合に表示されたリッチリザルト" class="wp-image-1478" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/220759-1-615x1024.webp 615w, https://opticode-lab.com/wp-content/uploads/2026/03/220759-1-361x600.webp 361w, https://opticode-lab.com/wp-content/uploads/2026/03/220759-1.webp 721w" sizes="auto, (max-width: 615px) 100vw, 615px" /><figcaption class="wp-element-caption">Google検索：リッチリザルト</figcaption></figure>
</div>


<p>このように、検索結果の画面で他よりも明らかに目立って表示されるのが最大の特徴です。<br>代表的なリッチリザルトの種類は以下のようなものがあります。（実際はもっとたくさんの種類があります。）</p>



<ul class="wp-block-list">
<li>レシピ（Recipe）</li>



<li>レビュー（Review）</li>



<li>よくある質問（FAQ）</li>



<li>記事（Article,BlogPosting）</li>



<li>カルーセル（ItemList）</li>
</ul>



<p>通常より目立つ表示なので、できるだけこのリッチリザルトで表示されるようサイト側で設定を行いたいです。<br>そのために必要なのが<strong>構造化データ</strong>です。</p>



<h2 class="wp-block-heading">構造化データとは？一言でいうと「Google専用の自己紹介カード」</h2>



<p>私たちのサイトを巡回するGoogleのクローラーは、単なるテキストの羅列としてしか認識していません。<br>たとえばページに著者名を入れていた場合に、それが投稿の著者（ライター）なのか記事の中身の登場人物か、Googleのクローラーには完全には判別できないのです。</p>



<p>そこで役立つのが<strong>構造化データ</strong>です。</p>



<p>構造化データがあればGoogleのクローラーに対して<br>「このテキストは記事のタイトル（Headline）ですよ」<br>「この画像はアイキャッチ画像（Image）ですよ」 <br>「この記事を書いたのは山田太郎（Author）ですよ」<br> と、意味を明確にタグ付けして伝えるための「自己紹介カード」のような役割を果たします。</p>



<p>これによって、Googleクローラーがサイトの情報を正確に取得しリッチリザルトとして表示してくれるようになります。</p>



<h3 class="wp-block-heading">構造化データはどのように設定する？</h3>



<p>現在、Googleが最も推奨している構造化データの書き方が<strong>「JSON-LD（ジェイソン・エルディー）」</strong>という形式です。これは、HTMLのタグを直接いじるのではなく、headタグの中にスクリプトとして記述するため、サイトの見た目に影響を与えずに安全に実装できるというメリットがあります。</p>



<p>サポートしている構造化データの種類や形式が詳しく知りたい場合は公式ドキュメント：<a href="https://developers.google.com/search/docs/appearance/structured-data/search-gallery?hl=ja" target="_blank" rel="noreferrer noopener nofollow">Google 検索がサポートする構造化データ マークアップ </a>をご覧ください。</p>



<h2 class="wp-block-heading">WordPressで構造化データを設定する方法</h2>



<p>WordPressを使用する場合、<strong>SEOプラグイン</strong>に出力させる方法と、head タグ内に JSON-LD を出力するコードを <strong>functions.php に追記</strong>する方法があります。<br>今回は後者の方法で解説します。</p>



<p>functions.php に以下を追記すれば投稿に<strong>記事（Article）</strong>の構造化データが追加されます。<br>Articleはニュースやブログ記事などに使える汎用的な指定です。</p>



<pre class="wp-block-code"><code>function insert_custom_json_ld() {
    // 記事ページ（is_single）のみ出力
    if ( is_single() ) {
        global $post;
        
        // 公開日時と更新日時の取得
        $pub_time_c  = get_the_time( 'c' ); // 出力用（ISO 8601形式）
        $mod_time_c  = get_the_modified_time( 'c' );
        
        // 比較用にUnixタイムスタンプも取得
        $pub_time_ts = get_the_time( 'U' );
        $mod_time_ts = get_the_modified_time( 'U' );

        // アイキャッチ画像（ない場合のデフォルト画像）
        $image_url = get_the_post_thumbnail_url( $post-&gt;ID, 'full' ) ?: home_url( '/wp-content/uploads/default-image.jpg' );

        $schema = array(
            '@context'         =&gt; 'https://schema.org',
            '@type'            =&gt; 'Article',
            'mainEntityOfPage' =&gt; array(
                '@type' =&gt; 'WebPage',
                '@id'   =&gt; get_permalink()
            ),
            // 投稿タイトル
            'headline'         =&gt; get_the_title(),
            // アイキャッチ画像
            'image'            =&gt; array( $image_url ),
            'datePublished'    =&gt; $pub_time_c,
            // 'dateModified' は下の条件分岐で追加します
            'author'           =&gt; array(
                '@type' =&gt; 'Person',
                // WPプロフィール設定の「ニックネーム」を明示的に指定
                'name'  =&gt; get_the_author_meta( 'nickname', $post-&gt;post_author ),
                // WPプロフィール設定の「サイト」を明示的に指定
                'url'   =&gt; get_the_author_meta( 'user_url', $post-&gt;post_author )
            ),
            'publisher'        =&gt; array(
                '@type' =&gt; 'Organization',
                // WP一般設定の「サイトのタイトル」を明示的に指定
                'name'  =&gt; get_bloginfo( 'name' ),
                'logo'  =&gt; array(
                    '@type' =&gt; 'ImageObject',
                    // サイトのロゴ画像を指定
                    'url'   =&gt; home_url( '/wp-content/uploads/logo.png' )
                )
            )
        );

        // 更新日時が公開日時以上のときのみ dateModified を配列に追加
        if ( $mod_time_ts &gt;= $pub_time_ts ) {
            $schema&#91;'dateModified'] = $mod_time_c;
        }

        // JSON-LDの出力
        echo '&lt;script type="application/ld+json"&gt;' . "\n";
        echo wp_json_encode( $schema, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT );
        echo "\n" . '&lt;/script&gt;' . "\n";
    }
}
// head内で出力
add_action( 'wp_head', 'insert_custom_json_ld' );</code></pre>



<p>各項目の指定内容はコメントの通りですので、変更したい場所は該当項目を修正してください。<br>注意点のみ以下に記載します。</p>



<h3 class="wp-block-heading">注意① 著者 author をユーザー名にしない</h3>



<p>author（著者）の情報は名前とURLを設定します。</p>



<p>上記コードでは名前をWordPressのプロフィール画面「ニックネーム」の内容を取得するようにしています。ここは<strong>必ずユーザー名以外を表示するようにしてください。</strong><br>ユーザー名はWordPressのログインに使用するため、公開すると不正アクセスの危険があります。</p>



<p>また、<strong>URLは必須ではないものの強く推奨される項目</strong>です。<br>現在のGoogleは、記事の評価において<strong>「E-E-A-T（経験、専門性、権威性、信頼性）」</strong>を非常に重視しています。<br>url を指定して著者プロフィールと紐づけることは、Googleに対して次のようなアピールになります。</p>



<ul class="wp-block-list">
<li><strong>このURLの先には、著者のこれまでの執筆実績や、SNSへのリンク、専門的な経歴が載っています</strong><br>個人ブログであれば aboutページなどを指定すればよいです。</li>



<li><strong>この記事は、どこの誰とも分からない匿名の人ではなく、身元がはっきりしたこのURLの人物が責任を持って書いています</strong></li>
</ul>



<p>結果として、記事単体だけでなく「サイト全体の信頼性」を底上げすることに繋がります。<br>個人ブログであれば about ページでもよいので、必ずサイトを指定しましょう。</p>



<h3 class="wp-block-heading">注意② 更新日時 dateModified は公開日時 datePublished より新しい日時にする</h3>



<p>WordPressの更新日時は、投稿画面を保存した時間となる仕様です。<br>そのため、予約投稿を行った際は 公開日時 &gt; 更新日時 となってしまい、これをそのまま使用すると公開日時より前に更新日時がある というチグハグな状態となっています。</p>



<p>これを防ぐために以下のように<strong>公開日時と更新日時を比較し、更新日時の方が新しい場合のみ dateModified を指定</strong>するようにしています。</p>



<pre class="wp-block-code"><code>        // 更新日時が公開日時以上のときのみ dateModified を配列に追加
        if ( $mod_time_ts &gt;= $pub_time_ts ) {
            $schema&#91;'dateModified'] = $mod_time_c;
        }</code></pre>



<p>ポイントとしては、Unixタイムスタンプで比較することです。<br><strong>ISO 8601形式の比較は文字列同士の比較</strong>となってしまうため、<strong>予期せぬバグ</strong>が発生することがあります。<br>そのため<strong>Unixタイムスタンプ（整数）同士の比較</strong>をするほうがプログラム的には安全で確実です。</p>



<h2 class="wp-block-heading">記事以外に構造化データを追加する方法</h2>



<p>追記したfunctionの頭にある<code>if ( is_single() )</code>を分岐させてテンプレートごとに適した構造化データを指定しましょう。<br>また、投稿の内容によって、レシピ・レビュー・FAQ など、別の構造化データを指定したい場合は、<strong>投稿のカテゴリやタグを利用して分岐</strong>させるのがおすすめです。</p>



<p><a href="https://developers.google.com/search/docs/appearance/structured-data/search-gallery?hl=ja" target="_blank" rel="noreferrer noopener nofollow">Google 検索がサポートする構造化データ マークアップ</a> の中から選びましょう。</p>



<p>ただし、構造化データのタイプによって必須な項目も異なるため、継続的に運用できるかを考慮して判断しましょう。<br>（たとえば、商品 Product の価格 offers は常に変動するものなので指定が難しい など）</p>



<h2 class="wp-block-heading">構造化データの検証方法</h2>



<p>構造化データが適切に設定されているかは以下のツールで検証が可能ですが、スキーマ マークアップ検証ツールは<strong>Google固有の警告は表示してくれない</strong>ようです。<br>Google公式が提供しているのが<strong>リッチリザルト テスト</strong>なので、こちらのほうがおすすめです。</p>



<ul class="wp-block-list">
<li><a href="https://search.google.com/test/rich-results" target="_blank" rel="noreferrer noopener nofollow">リッチリザルト テスト</a></li>



<li><a href="https://validator.schema.org/" target="_blank" rel="noreferrer noopener nofollow">スキーマ マークアップ検証ツール</a></li>
</ul>



<p>ただし、<strong>構造化データが正しい形式で指定されていたとしても、リッチリザルトで表示されるとは限りません</strong>。<br>とは言えGoogleには正しく伝わっているはずなので、<strong>気長に待ちましょう</strong>。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>今回はプラグインを使用しないWordPressでの構造化データの指定方法を解説しました。</p>



<p>設定してもGoogleは中々リッチリザルトで表示してくれませんが、表示されたときは「やってよかったな」という満足感があります。</p>



<p>デメリットも無いので、とりあえずで設定しておくべきの必須級の機能ですね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1476/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gemini AI 学習コーチを活用した資格の勉強方法（AWS SAA）</title>
		<link>https://opticode-lab.com/technology/1417/</link>
					<comments>https://opticode-lab.com/technology/1417/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Sat, 28 Feb 2026 20:28:57 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[資格]]></category>
		<guid isPermaLink="false">https://opticode-lab.com/?p=1417</guid>

					<description><![CDATA[この記事では、GoogleのAI Geminiを利用した資格取得のための学習方法について解説します。内容はAWS SAA（ソリューションアーキテクト アソシエイト）の学習になっていますが、その他の資格全般に活かせる内容と [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>この記事では、GoogleのAI Geminiを利用した資格取得のための学習方法について解説します。<br>内容は<a href="https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/" data-type="link" data-id="https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/" target="_blank" rel="noreferrer noopener nofollow">AWS SAA（ソリューションアーキテクト アソシエイト）</a>の学習になっていますが、その他の<strong>資格全般に活かせる</strong>内容となっています。</p>



<p>この記事を読むと：</p>



<ul class="wp-block-list">
<li>効率的な資格の学習方法がわかる</li>



<li>移動中など、<strong>手軽にスマホで勉強</strong>ができる</li>



<li><strong>無料で試験対策</strong>ができる</li>
</ul>



<h2 class="wp-block-heading">資格対策にお金を払う時代は終わった</h2>



<p>これまでの資格と言えば、試験対策テキストやオンラインカリキュラムなどの効率よく学習する手段には<strong>お金を払う</strong>必要がある、というのが常識でした。<br>それもそのはず、膨大な出題範囲を解りやすくまとめ、試験に出やすいポイントや最新情報を押さえ、練習問題を作成する。といった<strong>とてつもない労力</strong>がかかるものに<strong>コストがかかって当然</strong>なのです。</p>



<p>しかし、AIが登場してから<strong>この常識は終わった</strong>と感じています。</p>



<p>AIは学習によって膨大なデータを取得し、試験範囲に沿って情報を出力する能力を持っているため、これまで人間が時間をかけてきたことを<strong>ノーコスト</strong>でやってしまいます。<br><strong>練習問題が欲しければすぐに出力</strong>し、<strong>間違った問題は解説</strong>してくれます。<br>さらに、<strong>質問すればなんでも深堀して回答</strong>してくれる、さながら<strong>家庭教師のような役割</strong>を持っています。</p>



<p>これは<strong>革命</strong>です。あと商売上がったりです。<br>とは言え利用しない手は無いです。</p>



<h2 class="wp-block-heading">Gem 学習コーチとは？なにができる？</h2>



<p>この記事では <strong>Gem 学習コーチ</strong> というものを使用してみたいと思います。</p>



<p>まず Gem とは、Google Geminiをベースとした<strong>特定の役割やタスクに特化した「自分専用のGemini」</strong>をカスタマイズできる機能です。<br>以前は有料だったようですが、2026年3月現在では<strong>無料で使用</strong>できます。</p>



<p>その中の <strong>Gem学習コーチ（Learning Coach）</strong>は Google公式が提供しているプリセットの一つで、<strong>「理解を深めるための導き」</strong>に特化した<strong>AI家庭教師 </strong>らしいです。（Gemini本人談）</p>



<p>Gem学習コーチは以下のようなことができます。</p>



<h3 class="wp-block-heading">資格取得までの学習プランを作成</h3>



<p>学習を始める際に何から手を付ければいいのか、どういったペースで進めればいいか、と悩むことがあるかと思いますが、<strong>試験日を伝えればそこから逆算した学習プランを作成</strong>してくれます。</p>



<h3 class="wp-block-heading">直感的に理解しやすい説明</h3>



<p>説明を聞いても「？」となってしまう内容を、直感的にわかるような<strong>例えを混ぜつつかみ砕いて説明</strong>してくれます。<br>逆にユーザー側が「これって〇〇みたいなもの？」と質問すれば、合っているかどうか判断してくれます。<br>もちろん理解できるまで付き合ってくれます。</p>



<h3 class="wp-block-heading">画像で視覚的に説明</h3>



<p>画像生成能力があるため、<strong>「図で表してみて」「画像で見せて」</strong>と言えば、<strong>説明した内容に沿った画像を作成</strong>してくれます。<br>注意点としてはAIは日本語（特に漢字）の画像出力が苦手なためテキストは英語で出力されることが多いです。</p>



<h3 class="wp-block-heading">問題の作成・解説</h3>



<p>練習問題を作成し、間違えれば詳しく解説してくれます。<br>実際の試験で出やすいポイントや覚え方のコツ、苦手な分野も把握して重点的に問題を作ってくれます。</p>



<p>興味があれば自身でGemを作成することもできます。<br>Gemの作成方法は <a href="https://support.google.com/gemini/answer/15146780?hl=ja" target="_blank" rel="noreferrer noopener nofollow">GeminiアプリでGemを使用する</a> でご確認ください。</p>



<h2 class="wp-block-heading">Geminiを使用するにあたっての注意点</h2>



<p>Geminiに限らずAIを使用する場合に気を付けるべきこととして、<strong>「AIは間違える可能性がある」</strong>ということです。<br>おかしなことを言っていると思った場合は<strong>自分で調べる</strong>ことをオススメします。</p>



<p>とはいえAWS SAAの資格試験のような<strong>明確に正解が決まっているものはほぼ間違えることは無い</strong>と思います。安心して学習を進めましょう。</p>



<h2 class="wp-block-heading">Gem 学習コーチを使ってみる</h2>



<p>ここからは実際にGem学習コーチを使ってみます。<br>まずはGoogleGeminiにアクセスし、左上のメニューを開き「Gem」を押下します。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1024" height="544" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235818.webp" alt="メニュー内Gemの位置ともっと見る" class="wp-image-1427" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235818.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235818-300x159.webp 300w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235818-768x408.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Gemini：Gem選択</figcaption></figure>
</div>


<p>Gemマネージャーの中の「学習コーチ」を押下します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="615" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235948.webp" alt="学習コーチの位置" class="wp-image-1428" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235948.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235948-300x180.webp 300w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-02-28-235948-768x461.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Gemini：学習コーチ選択</figcaption></figure>



<p>資格名、試験日、学習ペースなどを伝え、学習プランを作成してもらいます。<br>いつでも受けられる試験なら、試験日も相談してみるのもオススメです。</p>



<p>以下はプロンプトの例です。</p>



<pre class="wp-block-code"><code>以下の条件で資格取得のための学習プランを作成して

資格名：〇〇〇〇
試験日：〇月〇日、〇カ月後 など
今のレベル：全くの未経験、基礎はわかる、実務経験あり など
学習ペース：1日〇時間、週〇時間、余裕を持った</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1024" height="960" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045525.webp" alt="学習コーチから学習プランの提示" class="wp-image-1423" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045525.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045525-300x281.webp 300w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045525-768x720.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Gem学習コーチ：プラン作成</figcaption></figure>
</div>


<p>問題なさそうなので、さっそく学習プランの最初から始めてもらいます。</p>



<p>ここからは解説と試験で出るポイントなどを解りやすく説明してくれます。<br>何も言わなければテキストしかくれないので、疑問があれば質問したり画像を使った説明をお願いしながら学習を進めていきましょう。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1024" height="986" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045608.webp" alt="" class="wp-image-1424" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045608.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045608-300x289.webp 300w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045608-768x740.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Gem学習コーチ：授業風景</figcaption></figure>
</div>


<p>ちなみに画像をお願いするとこんなのが出てきます。<br>見切れてますが、この画像の下にはテキストで詳細な説明があります。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1024" height="861" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045754.webp" alt="図解の依頼とGem学習コーチによる構成図の生成と解説" class="wp-image-1426" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045754.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045754-300x252.webp 300w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045754-768x646.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Gem学習コーチ：画像で説明</figcaption></figure>
</div>


<p>一区切りつくと<strong>「小テスト」や「クイズ」</strong>を出して理解できているか確認してきます。<br>だいたい3択から選ぶ感じです。間違えた場合は問題を詳しく解説してくれます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1024" height="889" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045648.webp" alt="Gem学習コーチが出題する小テスト" class="wp-image-1425" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045648.webp 1024w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045648-300x260.webp 300w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-045648-768x667.webp 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Gem学習コーチ：小テスト</figcaption></figure>
</div>


<p>これを繰り返して学習していきます。<br>学習プラン通りの良いペースで進んでいると「今日はここまでにしますか？」と言ってくれるので、そこが辞め時です。</p>



<p>次回学習するときに話しかければ続きから進めてくれます。</p>



<h2 class="wp-block-heading">最後の追い込み！<strong>フラッシュカード</strong>で練習問題</h2>



<p>Gem 学習コーチは1つずつ丁寧に説明してくれるのが強みですが、その思想が邪魔をして<strong>試験直前のとにかく問題を多くこなすのが不得意</strong>です。</p>



<p>そのため最後はGem学習コーチではなく<strong>通常のGemini</strong>に問題を出してもらいましょう。</p>



<p>「試験名」「問題数」「<strong>フラッシュカードで作成して</strong>」と伝えると、以下のような形式で作成した問題を表示してくれます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="988" height="1024" src="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-043155-988x1024.webp" alt="AWS SAA-C03 対策模擬クイズ20問" class="wp-image-1421" srcset="https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-043155-988x1024.webp 988w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-043155-290x300.webp 290w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-043155-768x796.webp 768w, https://opticode-lab.com/wp-content/uploads/2026/03/2026-03-01-043155.webp 1024w" sizes="auto, (max-width: 988px) 100vw, 988px" /><figcaption class="wp-element-caption">Gemini：フラシュカードを使った練習問題</figcaption></figure>
</div>


<p>回答をタップすれば正解・不正解を表示してくれるので、通勤・通学や時間が無い時など、<strong>スマホで簡単に学習</strong>が進められます。これが非常に便利。</p>



<p>ただし、Geminiはフラッシュカードで何が不正解だったかを取得できないようで、解説が必要なときは「問〇の解説して」のように伝える必要があります。</p>



<p>ラストスパートとしてどんどん問題を解きましょう。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>今回はGeminiおよびGem学習コーチを使用した資格試験対策について解説しました。<br>ポイントをまとめると：</p>



<ul class="wp-block-list">
<li>Gemコーチによる学習プラン作成と実行</li>



<li>Geminiフラッシュカードによるラストスパート</li>
</ul>



<p>正直なところ、すごいと感じると同時に怖いとも感じました。<br>僕らが頑張って勉強していることは既にAIが知っていること。少なくとも資格に関してはそう思ってしまいました。</p>



<p>とは言えAIが正しいかどうかを判断する人間は必要。使う側で居続けるためにも日々精進ですね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1417/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Dockerを使用したWordPressローカル環境の構築方法</title>
		<link>https://opticode-lab.com/technology/1293/</link>
					<comments>https://opticode-lab.com/technology/1293/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Wed, 11 Feb 2026 08:45:00 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">http://18.180.129.10/?p=1293</guid>

					<description><![CDATA[この記事では、Dockerを使用してローカル環境にWordPressを構築する方法について解説します。実際に当サイトを開発・運営した経験をもとに書いています。 この記事を読むと： なぜDockerなのか？ Dockerを [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>この記事では、Dockerを使用してローカル環境にWordPressを構築する方法について解説します。<br>実際に当サイトを開発・運営した経験をもとに書いています。</p>



<p>この記事を読むと：</p>



<ul class="wp-block-list">
<li>自由に触れるWordPress環境を構築できる</li>



<li>Dockerによる環境構築方法を理解できる</li>
</ul>



<h2 class="wp-block-heading">なぜDockerなのか？</h2>



<p>Dockerを使用してローカル開発環境を作るメリットは「<strong>動作環境をコード化して、どのPCでも同じ状態を再現できる</strong>」という点にあります。<br><br>実務上は以下のようなメリットになります。</p>



<ul class="wp-block-list">
<li>本番環境に合わせた構成が簡単に作成できる</li>



<li>環境差分（PC環境ごとに動作が違う）を無くす</li>



<li>複数の構成が異なる環境を同時に起動できる</li>
</ul>



<p>逆にデメリットはローカルで動かすためPCに負荷がかかる点です。<br>PCのスペックが低い、Docker側で重い作業を行う等でPCの動作が遅くなります。</p>



<h2 class="wp-block-heading">前提条件・環境</h2>



<p>今回の検証環境は以下です。</p>



<ul class="wp-block-list">
<li>Docker Desktop</li>



<li>テキストエディタ（VSCodeなど）</li>



<li>Webブラウザ（Chromeなど）</li>



<li>コマンドプロンプト（macならターミナル）</li>
</ul>



<p>Docker Desktopの導入方法は以下にて解説しておりますので、未導入の場合は是非参考にしてください。</p>


<a href="https://opticode-lab.com/technology/1279/" class="opti-link-card">  <img decoding="async" src="https://opticode-lab.com/wp-content/uploads/2026/02/dockerwp-300x300.png" alt="" class="opti-link-card__thumb">  <div class="opti-link-card__body">    <div class="opti-link-card__title">ローカル開発環境構築のためのDocker Desktop導入手順</div>    <div class="opti-link-card__meta">opticode.lab.com</div>  </div></a>



<h2 class="wp-block-heading">ステップ1 Docker Desktopの起動</h2>



<p>なにはともあれDocker Desktopを起動しましょう。起動すれば以下のような画面が表示されるはずです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="570" src="https://opticode-lab.com/wp-content/uploads/2026/02/133610-1024x570.jpg" alt="" class="wp-image-1283" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/133610-1024x570.jpg 1024w, https://opticode-lab.com/wp-content/uploads/2026/02/133610-300x167.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/133610-768x427.jpg 768w, https://opticode-lab.com/wp-content/uploads/2026/02/133610.jpg 1247w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Docker Desktop：起動画面</figcaption></figure>



<p>また、Windowsなら以下のようにタスクバーにも表示されているはずです。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="279" height="134" src="https://opticode-lab.com/wp-content/uploads/2026/02/image-1.png" alt="" class="wp-image-1295"/><figcaption class="wp-element-caption">Docker Desktop：タスクバーの表示</figcaption></figure>
</div>


<h2 class="wp-block-heading">ステップ2 Docker設定ファイルの作成</h2>



<p>Dockerで環境を構築するためには <code>docker-compose.yml</code> という設定ファイルが必要になります。<br>このファイルにはコンテナ内に構築する環境の構成を記述し、それをもとにDockerが自動で環境を構築する仕組みになっています。</p>



<p><code>docker-compose.yml</code> に記述する構成は本番環境と同様のものを指定しましょう。<br>本記事では複雑になりすぎないよう &#8220;ローカルにWordPress環境を作るための最小構成&#8221; で説明します。</p>



<h3 class="wp-block-heading">作業用ディレクトの作成</h3>



<p>まずは <code>docker-compose.yml</code> を置くフォルダを作成します。<br>場所やフォルダ名は何でもいいですが、WordPressのDBやテーマファイルもここに入るため作業しやすい場所がいいと思います。</p>



<p>今回は Cドライブ直下に <code>test-site</code> フォルダを作成することとしました。</p>



<h3 class="wp-block-heading">docker-compose.yml ファイルの作成</h3>



<p>テキストエディタを開き、以下の内容を記述したうえで <code>docker-compose.yml</code> というファイル名で保存し、作成した作業用ディレクトリに置きます。</p>



<pre class="wp-block-code"><code>services:
  db:
    image: mysql:8.4
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    image: wordpress:6.9.1-php8.2-apache
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppass
    volumes:
      - ./wp-content:/var/www/html/wp-content

volumes:
  db_data:</code></pre>



<p>ひとつずつ解説します。</p>



<h4 class="wp-block-heading">全体像</h4>



<ul class="wp-block-list">
<li><code>services:</code> の下に「起動するコンテナ（サービス）」を並べる<br>今回は <code>db:</code> と <code>wordpress: </code>を起動しています。</li>



<li><code>volumes:</code> でデータを永続化するための領域を定義<br>これがなければコンテナを停止した時にデータが消えちゃうので必須の記述です。</li>
</ul>



<h4 class="wp-block-heading">DB</h4>



<pre class="wp-block-code"><code>db:
    image: mysql:8.4
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppass
      MYSQL_ROOT_PASSWORD: rootpass
    volumes:
      - db_data:/var/lib/mysql</code></pre>



<ul class="wp-block-list">
<li>db という名前のサービスの設定内容を記述</li>



<li><code>image: mysql:8.4</code> MySQL 8.4 の公式イメージを指定する</li>



<li><code>restart: unless-stopped</code> コンテナが落ちた時に自動で再起動する（手動で停止させた場合を除く）</li>



<li><code>environment:</code>データベース名、ユーザー名とそのパスワード、rootユーザーのパスワードをそれぞれ指定する</li>



<li><code>volumes:</code>MySQLのデータ保存場所を指定する</li>
</ul>



<h4 class="wp-block-heading">WordPress</h4>



<pre class="wp-block-code"><code>  wordpress:
    image: wordpress:6.9.1-php8.2-apache
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppass
    volumes:
      - ./wp-content:/var/www/html/wp-content</code></pre>



<ul class="wp-block-list">
<li>wordpressという名前のサービスの設定内容を記述</li>



<li><code>image: wordpress:6.9.1-php8.2-apache</code> WordPress 6.9.1 をPHP 8.2、WebサーバーはApacheを指定</li>



<li><code>restart: unless-stopped</code> DBと同様に落ちたら自動復帰</li>



<li><code>depends_on: - db</code> 先に記述したdbが起動した後にWordPressを起動するという指定</li>



<li><code>ports:- "8080:80"</code> ブラウザを使用し http://localhost:8080 でページを閲覧するためのポート設定</li>



<li><code>environment:</code>先に記述したDBをWordPressに使用させるための接続情報を指定</li>



<li><code>volumes:</code> コンテナ内の <code>wp-content</code> を、PC上の <code>./wp-content</code> フォルダにマウントさせる設定</li>
</ul>



<p>長くなりましたが、ひとまずこれで最低限WordPressを動かすための準備ができました。</p>



<h2 class="wp-block-heading">ステップ3 コンテナの起動</h2>



<p>コマンドプロンプト（またはターミナル）を使用してコンテナを起動します。<br>まずはコマンドプロンプトを起動し、<code>docker-compose.yml</code> を格納した作業用フォルダに移動します。</p>



<p>そこで以下のコマンドを実行してください。</p>



<pre class="wp-block-code"><code>docker compose up -d</code></pre>



<p>これは <code>docker-compose.yml</code> の内容をもとにコンテナを作成するものです。<br>実行するとコンテナの初回起動が行われます。以下のような表示が出るはずです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="159" src="https://opticode-lab.com/wp-content/uploads/2026/02/193844-1024x159.jpg" alt="" class="wp-image-1296" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/193844-1024x159.jpg 1024w, https://opticode-lab.com/wp-content/uploads/2026/02/193844-300x46.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/193844-768x119.jpg 768w, https://opticode-lab.com/wp-content/uploads/2026/02/193844.jpg 1091w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">コマンドプロンプト: コンテナ初回起動</figcaption></figure>



<p>また、Docker Desktopを見ると以下のように起動中のコンテナが確認できるようになっています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="575" src="https://opticode-lab.com/wp-content/uploads/2026/02/195357-1024x575.jpg" alt="" class="wp-image-1297" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/195357-1024x575.jpg 1024w, https://opticode-lab.com/wp-content/uploads/2026/02/195357-300x168.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/195357-768x431.jpg 768w, https://opticode-lab.com/wp-content/uploads/2026/02/195357.jpg 1253w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Docker Desktop：コンテナ起動確認</figcaption></figure>



<h2 class="wp-block-heading">ステップ4 WordPressにアクセス</h2>



<p>起動したWordPressにアクセスしましょう。<br>http://localhost:8080 でアクセスできるよう設定していたので、Webブラウザを使用してこのURLにアクセスしてみてください。<br>まっさらなWordPressが入っているので、以下のような言語設定の画面から始まると思います。日本語を選択して次へ進んでください。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="640" height="757" src="https://opticode-lab.com/wp-content/uploads/2026/02/200020.jpg" alt="" class="wp-image-1298" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/200020.jpg 640w, https://opticode-lab.com/wp-content/uploads/2026/02/200020-254x300.jpg 254w" sizes="auto, (max-width: 640px) 100vw, 640px" /><figcaption class="wp-element-caption">WordPress: 言語設定画面</figcaption></figure>



<p>サイトの基本情報を入力して、WordPressをインストールしてください。<br>ここで入力した内容は後ほどWordPressの管理画面から設定変更が可能なので、まだ決まって無ければとりあえずのものを入れておきましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="773" height="893" src="https://opticode-lab.com/wp-content/uploads/2026/02/200144.jpg" alt="" class="wp-image-1299" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/200144.jpg 773w, https://opticode-lab.com/wp-content/uploads/2026/02/200144-260x300.jpg 260w, https://opticode-lab.com/wp-content/uploads/2026/02/200144-768x887.jpg 768w" sizes="auto, (max-width: 773px) 100vw, 773px" /><figcaption class="wp-element-caption">WordPress: 基本情報入力画面</figcaption></figure>



<p>インストールが完了したらログイン画面に遷移するため、先ほど設定したユーザー名・パスワードでログインしてください。<br>無事ログインできればWordPressのダッシュボードが表示されるはずです。</p>



<h2 class="wp-block-heading">ステップ5 コンテナの停止と保存確認</h2>



<p>コンテナを停止した際に情報が消えてしまわないか確認します。<br>コマンドプロンプトにて、作業用ディレクトリへ移動し以下のコマンドを実行します。</p>



<pre class="wp-block-code"><code>docker compose down</code></pre>



<p>これで再度 http://localhost:8080 にアクセスしてみてください。停止できていればアクセスできなくなっているはずです。<br>そのまま以下のコマンドを実行し、コンテナを起動してみましょう。</p>



<pre class="wp-block-code"><code>docker compose up -d</code></pre>



<p>初回起動ほど待たずに起動されたかと思います。http://localhost:8080 にアクセスしましょう。<br>コンテナ停止で情報が消えてなければ、初回起動時のような言語設定・基本情報設定は表示されません。<br>http://localhost:8080/wp-login.php にアクセスしてログインしてみましょう。ユーザー情報も残っているためログインできます。</p>



<h2 class="wp-block-heading">ステップ6 テーマ読み込み確認</h2>



<p>ステップ2 にて <code>wp-content</code> フォルダのマウント設定を行っているため、作業フォルダ内の <code>wp-content</code> 内にあるファイルを変更すればローカル環境にもその内容が反映されます。</p>



<p>WordPress 6.9.1 ではデフォルトで <code>twentytwentyfive</code> のテーマが読み込まれているので、このテーマを編集して反映されるか確認してみましょう。</p>



<p>触るファイルは何でもいいですが、今回はわかりやすいように <code>wp-content/themes/twentytwentyfive/patterns</code> の <code>header.php</code> を使用してみます。</p>



<p>テキストエディタで <code>header.php</code> を開き、末尾に好きな文字列を入れて保存してみてください。<br>以下のようにサイトのヘッダーに記述した文字列が出ていれば成功です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="588" src="https://opticode-lab.com/wp-content/uploads/2026/02/204500-1024x588.jpg" alt="" class="wp-image-1300" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/204500-1024x588.jpg 1024w, https://opticode-lab.com/wp-content/uploads/2026/02/204500-300x172.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/204500-768x441.jpg 768w, https://opticode-lab.com/wp-content/uploads/2026/02/204500.jpg 1031w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">TOP: テーマ修正の反映確認</figcaption></figure>



<p>これでDockerを使用したWordPressローカル環境を作成することができました。</p>



<p>既に本番サイトが存在する場合はローカル環境にテーマファイルをアップロードしたり、投稿のインポート・エクスポート機能を用いて本番同様の環境にしてしまいましょう。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>今回はDockerを使用したWordPress開発環境の作り方を解説していきました。</p>



<p>コンテナは複数作ってもOKなのでサイトごとにどんどんコンテナを作っていきましょう。<br>また、チームで開発を行っている場合は同じ <code>docker-compose.yml</code> を共有することで環境差分を減らせます。<br><br>本来は本番環境の構成に合わせて設定を行うため、細かな設定は以下のリファレンスで確認してみましょう。</p>



<ul class="wp-block-list">
<li><a href="https://docs.docker.com/reference/compose-file/" target="_blank" rel="noreferrer noopener nofollow">Compose file reference</a>（公式）</li>



<li><a href="https://docs.docker.jp/reference/compose-file/toc.html" data-type="link" data-id="https://docs.docker.jp/reference/compose-file/toc.html" target="_blank" rel="noreferrer noopener nofollow">Compose ファイル リファレンス</a>（非公式）</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1293/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ローカル開発環境構築のためのDocker Desktop導入手順</title>
		<link>https://opticode-lab.com/technology/1279/</link>
					<comments>https://opticode-lab.com/technology/1279/#respond</comments>
		
		<dc:creator><![CDATA[るた]]></dc:creator>
		<pubDate>Wed, 11 Feb 2026 08:40:00 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Docker]]></category>
		<guid isPermaLink="false">http://18.180.129.10/?p=1279</guid>

					<description><![CDATA[この記事では、WordPress開発を前提としたDockerを使用したローカル環境の構築方法について解説します。実際に本サイトを構築・運営した経験をもとに書いています。 この記事を読むと： Dockerとは？ 簡単に説明 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>この記事では、WordPress開発を前提としたDockerを使用したローカル環境の構築方法について解説します。<br>実際に本サイトを構築・運営した経験をもとに書いています。</p>



<p>この記事を読むと：</p>



<ul class="wp-block-list">
<li>Dockerの基礎知識が身につく</li>



<li>チーム内での環境依存を減らした開発ができる</li>
</ul>



<h2 class="wp-block-heading">Dockerとは？</h2>



<p>簡単に説明するなら、<strong>アプリを動かすのに必要なもの一式（実行環境）を「コンテナ」という箱にまとめて、どのPCでも同じように動かせる仕組み</strong>です。</p>



<p>コンテナ内にどんなアプリを入れるかは設定ファイルにて指定ができ、本番環境と同じ構成を指定すれば同様の構成をコンテナ内に再現できます。<br>その設定ファイルを開発チーム内で共有すれば、全員同じ環境で開発作業が行えるようになります。</p>



<p>またコンテナの作成・削除も容易なので、とりあえず触れるまっさらなWordPressを作る、というのにも最適です。</p>



<h2 class="wp-block-heading">前提条件・環境</h2>



<p>Docker Desktopを使用するには以下の要件を満たす必要があります。</p>



<ul class="wp-block-list">
<li>Windows 11 64 ビット: Home Pro  Enterprise Education バージョン 21H2またはそれ以降 or<br>macOS 10.15 またはそれ以降</li>



<li>4 GB 以上のシステム RAM</li>



<li>BIOS 設定において BIOS レベルのハードウェア仮想化サポートが有効であること</li>
</ul>



<p>そもそもWindows11が64bitのみで4GB RAMは必須なのでWindows11が入っているPCならほぼ大丈夫です。macもおそらく古すぎなければ大丈夫だと思われます。<br>記事ではWindows11 Proを使用しますが、macでも設定はほぼ同様と思われます。</p>



<h3 class="wp-block-heading">ハードウェア仮想化サポートの有効確認</h3>



<p>一番手軽なのが タスクマネージャ → パフォーマンス の 仮想化 という項目を見る方法です。<br>ここが「有効」になっていれば有効化されています。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="965" height="591" src="https://opticode-lab.com/wp-content/uploads/2026/02/162718.jpg" alt="" class="wp-image-1290" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/162718.jpg 965w, https://opticode-lab.com/wp-content/uploads/2026/02/162718-300x184.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/162718-768x470.jpg 768w" sizes="auto, (max-width: 965px) 100vw, 965px" /><figcaption class="wp-element-caption">タスクマネージャー：仮想化の有効確認</figcaption></figure>



<p>無効の場合は以下2つの設定を確認する必要があります。</p>



<h3 class="wp-block-heading">BIOSでの有効化</h3>



<p>BIOSで仮想化が無効となっている場合があります。<br>BIOSの設定方法はPCごとに異なるため、以下のようなワードを検索してご自身でご確認ください。</p>



<ul class="wp-block-list">
<li><em>PC型番</em> 仮想化</li>



<li><em>PCメーカー名</em> 仮想化</li>



<li><em>マザーボード型番</em> 仮想化</li>



<li><em>マザーボードメーカー</em> 仮想化</li>
</ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>注意：BIOS設定ではデフォルトで有効 + 非表示 となっている場合アリ。設定項目が見当たらなければ先に「Windowsでの有効化」を試してみましょう。</p>
</blockquote>



<h3 class="wp-block-heading">Windowsでの有効化</h3>



<p><code>Win + R</code> → <code>optionalfeatures</code> → Enter（「Windows の機能」）</p>



<p>次にチェックを入れてOKを押し、PCを再起動する</p>



<ul class="wp-block-list">
<li>仮想マシン プラットフォーム（Virtual Machine Platform）</li>



<li>Linux 用 Windows サブシステム（Windows Subsystem for Linux）</li>
</ul>



<p>再起動したらタスクマネージャーから仮想化が有効になっているかを確認しましょう。</p>



<h2 class="wp-block-heading">導入手順</h2>



<p>Windows11 Proでの手順となりますので、その他の環境では少々内容が異なることはあります。<br>設定項目の違いはあるものの、Windows11 Homeでも導入できることは確認済みです。</p>



<h3 class="wp-block-heading">ステップ1 インストーラーのダウンロード</h3>



<p>まずはDocker Desctop を入手しましょう。<br><a href="https://www.docker.com/ja-jp/products/docker-desktop/" target="_blank" rel="noreferrer noopener nofollow">Docker公式</a>の Docker Desktop をダウンロードするから自分の環境にあった installerをダウンロードしてください。<br>Windowsは2種類ありますが基本的にはAMD64でOKです。ARM PCを使用している場合はARM64を選択してください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="602" src="https://opticode-lab.com/wp-content/uploads/2026/02/132535-1024x602.jpg" alt="" class="wp-image-1282" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/132535-1024x602.jpg 1024w, https://opticode-lab.com/wp-content/uploads/2026/02/132535-300x176.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/132535-768x451.jpg 768w, https://opticode-lab.com/wp-content/uploads/2026/02/132535.jpg 1172w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Docker公式：画像赤枠からダウンロードが可能</figcaption></figure>



<h3 class="wp-block-heading">ステップ2 インストーラーの実行</h3>



<p>ダウンロードが終わったらinstallerを実行してDocker Desktopをインストールしてください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>注意：インストール中はPC再起動が発生するので作業中のデータがある場合は保存しておくことをおすすめします。</p>
</blockquote>



<p>このアプリがデバイスに変更を加えることを許可しますか？という確認が表示されます。<br>「はい」でOKです。</p>



<p>以下の画面が表示されます。</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="710" height="491" src="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall1.jpg" alt="" class="wp-image-1284" style="width:710px;height:auto" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall1.jpg 710w, https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall1-300x207.jpg 300w" sizes="auto, (max-width: 710px) 100vw, 710px" /><figcaption class="wp-element-caption">Docker installer：セットアップ設定</figcaption></figure>



<p><strong>Use WSL 2 instead of Hyper-V</strong> → チェックを入れる<br>Hyper-Vの代わりにWSL2を使用するかの確認<br><strong>Allow Windows Containers to be used with this installation</strong> → チェック無し<br>Windowsアプリ用のコンテナもインストールするかの確認<br><strong>Add shorcut to desktop</strong> → お好きに<br>デスクトップにショートカットを作成するかの確認</p>



<p>上記の通りチェックしたら右下の「OK」を押すとインストールが開始されます。<br>完了すると以下が表示されるので、「Close and restart」を押します。（ここでPCの再起動が発生します）</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="713" height="494" src="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall3.jpg" alt="" class="wp-image-1285" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall3.jpg 713w, https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall3-300x208.jpg 300w" sizes="auto, (max-width: 713px) 100vw, 713px" /><figcaption class="wp-element-caption">Docker installer：再起動の確認画面</figcaption></figure>



<p>再起動が完了するとDocker Desktopが起動し、以下のような画面が表示されます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="808" height="509" src="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall4.jpg" alt="" class="wp-image-1286" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall4.jpg 808w, https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall4-300x189.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall4-768x484.jpg 768w" sizes="auto, (max-width: 808px) 100vw, 808px" /><figcaption class="wp-element-caption">Docker Desktop：使用許諾</figcaption></figure>



<p>使用許諾に関する内容で、以下のようなことが書いてあります。<br><br>サブスクリプションサービス契約、Dockerデータ処理契約、データプライバシーポリシー、およびDocker AI補足規約に同意したことになります。<br>従業員数250名以上、または年間売上高1,000万ドル以上の企業でDocker Desktopを商用利用するには、有料サブスクリプションが必要です。<br><br>確認のうえ、問題なければ「Accept」でOKです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>注意：記事作成時の内容なので念のためご自身でも内容をご確認ください。</p>
</blockquote>



<h3 class="wp-block-heading">ステップ3 WSL2 インストール</h3>



<p>ここから<strong>WSL2</strong>のインストール状況によって分岐するようです。<br><strong>WSL2</strong>とはWindows上でLinuxを動かすためのものです。Dockerを使用するために必要なものです。</p>



<p>管理人の場合は既にWSL2が入っていたようで、以下の確認が表示されました。<br>このアプリがデバイスに変更を加えることを許可しますか？ Linux用Windowsサブシステム<br>この場合は「はい」を選択してください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="246" src="https://opticode-lab.com/wp-content/uploads/2026/02/wslexe-install-1024x246.jpg" alt="" class="wp-image-1287" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/wslexe-install-1024x246.jpg 1024w, https://opticode-lab.com/wp-content/uploads/2026/02/wslexe-install-300x72.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/wslexe-install-768x185.jpg 768w, https://opticode-lab.com/wp-content/uploads/2026/02/wslexe-install.jpg 1106w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">コマンドプロンプト：wsl更新</figcaption></figure>



<p>上記のような画面が表示されます。任意のキーを押せば更新できます。</p>



<p>そもそもインストールされていなければインストールが必要となります。<br>その場合は以下を参考にインストールしてみてください。<br><a href="https://learn.microsoft.com/ja-jp/windows/wsl/install?utm_source=chatgpt.com" target="_blank" rel="noreferrer noopener nofollow">WSL を使用して Windows に Linux をインストールする方法</a></p>



<h3 class="wp-block-heading">ステップ4 動作確認</h3>



<p>ステップ3 まで完了すると以下のようなDocker Desktopのウィンドウが表示されます。<br>SkipでOKです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="941" height="720" src="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall5.jpg" alt="" class="wp-image-1289" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall5.jpg 941w, https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall5-300x230.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/dockerinstall5-768x588.jpg 768w" sizes="auto, (max-width: 941px) 100vw, 941px" /><figcaption class="wp-element-caption">Docker Desktop：ユーザー確認画面</figcaption></figure>



<p>以下の状態になれば成功です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="570" src="https://opticode-lab.com/wp-content/uploads/2026/02/133610-1024x570.jpg" alt="" class="wp-image-1283" srcset="https://opticode-lab.com/wp-content/uploads/2026/02/133610-1024x570.jpg 1024w, https://opticode-lab.com/wp-content/uploads/2026/02/133610-300x167.jpg 300w, https://opticode-lab.com/wp-content/uploads/2026/02/133610-768x427.jpg 768w, https://opticode-lab.com/wp-content/uploads/2026/02/133610.jpg 1247w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">キャプチャ：Docker Desktop画面</figcaption></figure>



<p>これでPC上にDocker Desktopを使用する準備が整いました。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>今回はDocker Desktopの導入方法について解説しました。<br>なかなか手間のかかる設定ですが、Docker Desktopが使えると軽量かつ環境に依存せず開発が進められるため非常に便利です。</p>



<p>自分で好きにできる環境を試せるのはモチベに繋がるので、是非いろいろな環境を構築してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://opticode-lab.com/technology/1279/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
