<?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>JavaScript | hgrs&#039;s Blog</title>
	<atom:link href="/archives/tag/javascript/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>文字好きエンジニアの技術メモ</description>
	<lastBuildDate>Sat, 18 May 2019 21:08:02 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.1</generator>

<image>
	<url>/wp-content/uploads/2019/05/cropped-port_512-32x32.png</url>
	<title>JavaScript | hgrs&#039;s Blog</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPressの記事上にアイキャッチをJavaScriptで自動挿入する</title>
		<link>/archives/207.html</link>
					<comments>/archives/207.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Sun, 19 May 2019 01:12:35 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[プラグイン]]></category>
		<guid isPermaLink="false">/?p=207</guid>

					<description><![CDATA[はじめに 僕の使ってるテーマNishikiでは投稿ページにアイキャッチが表示されません。なので記事の...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>僕の使ってるテーマ<a href="https://ja.wordpress.org/themes/nishiki/">Nishiki</a>では投稿ページにアイキャッチが表示されません。なので記事の上にアイキャッチが表示されるように変更してみました、<strong>JavaScript</strong>で。PHPじゃなくて、<strong>JavaScript</strong>で。</p>
<h2>なんでJavaScript？</h2>
<p>WordPressといえばPHPですよね。確かに、アイキャッチの追加はテーマのPHPをいじれば追加することができます。</p>
<p>でも僕はまだブログを始めたばかりで、今後テーマを変えてしまうかもしれないので、あまりテーマに依存した書き方をしたくなかったのです。</p>
<p>そのため、別の方法で追加する必要がありました。そこで記事の上下にHTMLを挿入できるプラグインを使用して実現しました。</p>
<p>HTMLが書けるということは<code>&lt;script&gt;&lt;/script&gt;</code>タグを利用してJavaScriptが書けます。なのでJavaScriptで実現しています。</p>
<h2>事前準備</h2>
<p>記事の上下にHTMLを追加するプラグインを入れます。</p>
<p><a href="https://ja.wordpress.org/plugins/pryc-wp-add-custom-content-to-bottom-of-post/">PRyC WP: Add custom content to post and page (top/bottom)</a></p>
<h2>追加コードの記入</h2>
<p>プラグインの設定から記事上のコードに以下のコードを書き加えます（操作は図を参照）。</p>
<p>注意点としては、一行目の<code>&lt;img&gt;</code>タグの<code>src</code>は自分の好きな読み込み中の画像を設定しましょう。</p>
<pre><code class="language-javascript">&lt;img name=&quot;top_ogp_image&quot; src=&quot;https://example.com/path/to/loading.png&quot;&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
    var metas = document.head.children;
    for(var i=0; i&lt;metas.length; i++){
        var property = metas[i].getAttribute(&#039;property&#039;);
        if(property === &#039;og:image&#039;){
            var imagePath = metas[i].getAttribute(&#039;content&#039;);
            document.top_ogp_image.src = imagePath;
        }
    }
&lt;/script&gt;</code></pre>
<p><img decoding="async" src="/wp-content/uploads/2019/05/2019-05-19-00.01.03-blog.hgrs_.me-3024d1e39b5c.png" alt="JavaScriptのアイキャッチ" /></p>
<h2>仕組みの解説</h2>
<p>JavaScriptからDOMを使用し、<code>&lt;meata&gt;</code>タグに設定されているOGP画像を読み取ってきます。</p>
<p>ただ特定の<code>&lt;meta&gt;</code>タグを一発で取ってくることができないため、まず<code>document.head.children</code>を利用し、<code>&lt;head&gt;&lt;/head&gt;</code>の全ての子要素を取ってきます。そこからOGP画像（<code>property</code>が<code>og:image</code>になっているもの）を抜き出します。</p>
<p>そしてOGP画像で読み込んでいる画像をあらかじめ用意した<code>&lt;img&gt;</code>タグの<code>src</code>として割り当てます。</p>
<p>こうすることで、JavaScriptを使ってアイキャッチ画像の自動挿入を実現できます。</p>
<h2>メリット</h2>
<h3>テーマに依存しない</h3>
<p>さっきも書きましたね。テーマを変えたりした時にわざわざ移行の必要がありません。単純に記事上下にHTMLを書き加えるプラグインなのでカスタマイズ性も高いです。</p>
<h3>一括管理ができる</h3>
<p>例えば「やっぱりアイキャッチ消そ」「表示サイズ/場所を変えよ」といったことが一括で操作できます。まあ、これはPHPでも同じですが…</p>
<p>ただ、このプラグインではIDを指定することで特定の記事には表示しないといった指定ができるのは良い点ですね。</p>
<h2>デメリット</h2>
<h3>読み込みが発生する</h3>
<p>JavaScriptで書いているので、クライアントサイド（ブラウザ）で画像の割り当てが実行されます。そのため、サーバサイドのPHPと違って、ページを読み込んだ後に画像を探すので、タイムラグが生じます。このタイムラグが画像読み込みの遅延の原因です。</p>
<h2>おわりに</h2>
<p>ちょっと特殊な方法でアイキャッチを指定しましたが、自由度が高いので良いですね。いつ表示を消すかわかりませんが笑。</p>
<p><del>ほんとはPHPが嫌いなので書きたくなかっただけ。</del></p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/207.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【全4種類】ロゴジェネレーターの紹介</title>
		<link>/archives/57.html</link>
					<comments>/archives/57.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Fri, 10 May 2019 14:48:55 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ロゴジェネレーター]]></category>
		<guid isPermaLink="false">/?p=57</guid>

					<description><![CDATA[はじめに アニメのロゴを手軽に再現できるロゴジェネレーターを作ったので紹介します。 ロゴジェネレータ...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>アニメのロゴを手軽に再現できるロゴジェネレーターを作ったので紹介します。</p>
<h2>ロゴジェネレーター一覧</h2>
<h3>女子高生の無駄づかい</h3>
<p><a href="https://logo.hgrs.me/jyoshimuda.html"><img decoding="async" src="/wp-content/uploads/2019/05/ogp-jyoshimuda.png" alt="「女子高生の無駄づかい」ロゴジェネレーター" /></a><br />
<a href="https://logo.hgrs.me/jyoshimuda.html">https://logo.hgrs.me/jyoshimuda.html</a></p>
<h3>かぐや様は告らせたい</h3>
<p><a href="https://logo.hgrs.me/kaguya.html"><img decoding="async" src="/wp-content/uploads/2019/05/ogp-kaguya.png" alt="「かぐや様は告らせたい」ロゴジェネレーター" /></a><br />
<a href="https://logo.hgrs.me/kaguya.html">https://logo.hgrs.me/kaguya.html</a></p>
<h3>幼女戦記</h3>
<p><a href="https://logo.hgrs.me/youjosenki.html"><img decoding="async" src="/wp-content/uploads/2019/05/ogp-youjosenki.png" alt="「幼女戦記」ロゴジェネレーター" /></a><br />
<a href="https://logo.hgrs.me/youjosenki.html">https://logo.hgrs.me/youjosenki.html</a></p>
<h3>妖狐×僕SS</h3>
<p><a href="https://logo.hgrs.me/inuboku.html"><img decoding="async" src="/wp-content/uploads/2019/05/ogp-inuboku.png" alt="「妖狐×僕SS」ロゴジェネレーター" /></a><br />
<a href="https://logo.hgrs.me/inuboku.html">https://logo.hgrs.me/inuboku.html</a></p>
<h2>使われてる技術について</h2>
<p>HTMLのCanvasをJavaScriptでこねくり回して作っています。</p>
<p>Canvas/JavaScriptを使うことでサーバーサイドで処理する必要がなく、ユーザ側で逐次確認できて、ロゴが作りやすい（と僕は思ってる）です。レスポンシブデザインなので、スマホでもある程度綺麗に見えると思います。</p>
<p>一応ツイート機能がついていて、そこからツイートすると、サーバサイドに一回画像を渡して、保存する過程を通るので、作成したロゴがOGP画像としてシェアできるリンクが作成されます。最近OGP画像のサービスが流行ってるのでこの機能をつけました。そのため、全てのロゴはOGP画像向けの固定サイズとなっています。</p>
<h2>おわりに</h2>
<p>暇があればどんどん種類が追加されていきますのでお楽しみに。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/57.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
