<?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>WordPressのPHP &#8211; PHPプログラミングの教科書 [php1st.com]</title>
	<atom:link href="https://php1st.com/wordpress-php/feed" rel="self" type="application/rss+xml" />
	<link>https://php1st.com</link>
	<description>気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。</description>
	<lastBuildDate>Thu, 05 Jul 2018 02:21:58 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>WordPressダッシュボードのメニューを非表示にするremove_menu_page関数</title>
		<link>https://php1st.com/2523</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Thu, 05 Jul 2018 02:10:15 +0000</pubDate>
				<category><![CDATA[WordPressのPHP]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2523</guid>

					<description><![CDATA[WordPressダッシュボードのメニューを非表示にするプラグインはいくつかありますが、プラグインを使わなくてもremove_menu_page関数を使えば管理画面からトップレベルのメニュー（外観、プラグイン、設定など） [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>WordPressダッシュボードのメニューを非表示にするプラグインはいくつかありますが、プラグインを使わなくても<strong>remove_menu_page関数</strong>を使えば管理画面からトップレベルのメニュー（外観、プラグイン、設定など）を非表示にすることができます。</p>
<pre class="brush: php; gutter: false; title: 「外観」メニューを非表示に; notranslate">
remove_menu_page('themes.php');
</pre>
<p>上記のコードによって「外観」メニューが非表示になります。</p>
<div id="attachment_2524" style="width: 501px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-2524" src="https://php1st.com/wp-content/uploads/2018/07/2018-07-05-10-49-37.jpg" alt="「外観」メニューを非表示に" width="491" height="195" class="size-full wp-image-2524" srcset="https://php1st.com/wp-content/uploads/2018/07/2018-07-05-10-49-37.jpg 491w, https://php1st.com/wp-content/uploads/2018/07/2018-07-05-10-49-37-300x119.jpg 300w, https://php1st.com/wp-content/uploads/2018/07/2018-07-05-10-49-37-320x127.jpg 320w" sizes="(max-width: 491px) 100vw, 491px" /><p id="caption-attachment-2524" class="wp-caption-text">「外観」メニューを非表示に</p></div>
<p>見せたくないメニューを非表示にしてダッシュボードを柔軟にカスタマイズしたいときに役立ちます。</p>
<h2>特定のユーザー以外はメニューを非表示にする場合</h2>
<p>これでは誰も「外観」メニューを見られなくなるので、「特定のユーザー以外は」という条件を付けるとよいかもしれません。たとえば、次のコードを使うと「suzuki以外は外観メニューを非表示に」となります。つまり、ユーザーsuzukiだけに外観メニューが表示されます。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
/* 特定の管理者以外はメニューを非表示に */
function my_admin_menu(){
  global $current_user;
  if($current_user-&gt;user_login != 'suzuki'){
    remove_menu_page('themes.php');
  }
}
add_action('admin_menu', 'my_admin_menu');
</pre>
<p>「$current_user->user_login」はログイン中のユーザー名を取得するコードです。「$current_user->user_login != &#8216;suzuki&#8217;」により、「suzuki以外は（外観メニューを非表示）」になります。</p>
<p>ただし、メニューへのアクセス制限ではなく、あくまで非表示にするだけなので注意してください。</p>
<p>remove_menu_page関数について詳しくは以下のページも参考にしてください。</p>
<p>【参考】<a target="_blank" href="https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/remove_menu_page">関数リファレンス/remove menu page &#8211; WordPress Codex 日本語版</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPressで中身が空のindex.phpは消しても大丈夫？</title>
		<link>https://php1st.com/2501</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Wed, 04 Jul 2018 05:05:36 +0000</pubDate>
				<category><![CDATA[WordPressのPHP]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2501</guid>

					<description><![CDATA[WordPressのファイルを探っていくとindex.phpというファイルがいくつもあるのに気づきます。そのうち、いくつかのindex.phpは中身が空っぽのようなので削除しても大丈夫かと思うかもしれませんが注意が必要で [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>WordPressのファイルを探っていくとindex.phpというファイルがいくつもあるのに気づきます。そのうち、いくつかのindex.phpは中身が空っぽのようなので削除しても大丈夫かと思うかもしれませんが注意が必要です。</p>
<p>たとえば、wp-content/themesフォルダにindex.phpがあります。</p>
<div id="attachment_2502" style="width: 246px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-2502" src="https://php1st.com/wp-content/uploads/2018/07/2018-07-04-13-59-27.jpg" alt="wp-content/themesフォルダのindex.php" width="236" height="168" class="size-full wp-image-2502" /><p id="caption-attachment-2502" class="wp-caption-text">wp-content/themesフォルダのindex.php</p></div>
<p>中身は空っぽです。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
&lt;?php
// Silence is golden.
</pre>
<p>消してもシステムには問題ありませんが、ブラウザからwp-content/themesフォルダにアクセスすると、中身が丸見えになりフォルダの一覧表が表示されます。</p>
<div id="attachment_2503" style="width: 470px" class="wp-caption alignnone"><img decoding="async" aria-describedby="caption-attachment-2503" src="https://php1st.com/wp-content/uploads/2018/07/2018-07-04-14-03-03.jpg" alt="index.phpを消すとフォルダ一覧が表示される" width="460" height="176" class="size-full wp-image-2503" srcset="https://php1st.com/wp-content/uploads/2018/07/2018-07-04-14-03-03.jpg 460w, https://php1st.com/wp-content/uploads/2018/07/2018-07-04-14-03-03-300x115.jpg 300w, https://php1st.com/wp-content/uploads/2018/07/2018-07-04-14-03-03-320x122.jpg 320w" sizes="(max-width: 460px) 100vw, 460px" /><p id="caption-attachment-2503" class="wp-caption-text">index.phpを消すとフォルダ一覧が表示される</p></div>
<p>中身が空っぽのindex.phpによって、フォルダ一覧が表示されない仕組みです。index.phpは消さないようにしましょう。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPressのPHPでショートコードを呼び出す方法</title>
		<link>https://php1st.com/2478</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 03 Jul 2018 07:02:21 +0000</pubDate>
				<category><![CDATA[WordPressのPHP]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2478</guid>

					<description><![CDATA[WordPressのPHPテンプレートの中でショートコードを呼び出す方法を紹介します。 PHPにショートコードを入力してもうまくいかない PHPテンプレートの中に次のようにショートコードを入力するかもしれません。 このシ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>WordPressのPHPテンプレートの中でショートコードを呼び出す方法を紹介します。</p>
<h2>PHPにショートコードを入力してもうまくいかない</h2>
<p>PHPテンプレートの中に次のようにショートコードを入力するかもしれません。</p>
<div id="attachment_2479" style="width: 548px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2479" src="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-31-09.jpg" alt="テンプレートにショートコードを入力" width="538" height="175" class="size-full wp-image-2479" srcset="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-31-09.jpg 538w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-31-09-300x98.jpg 300w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-31-09-320x104.jpg 320w" sizes="auto, (max-width: 538px) 100vw, 538px" /><p id="caption-attachment-2479" class="wp-caption-text">テンプレートにショートコードを入力</p></div>
<p>このショートコードは機能せず、そのまま表示されてしまいます。</p>
<div id="attachment_2480" style="width: 515px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2480" src="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-32-21.jpg" alt="ショートコードが機能しない" width="505" height="182" class="size-full wp-image-2480" srcset="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-32-21.jpg 505w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-32-21-300x108.jpg 300w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-32-21-320x115.jpg 320w" sizes="auto, (max-width: 505px) 100vw, 505px" /><p id="caption-attachment-2480" class="wp-caption-text">ショートコードが機能しない</p></div>
<h2>PHP内のショートコードにはdo_shortcodeを使う</h2>
<p>PHPの中にショートコードを入力する場合は<span class="stro">do_shortcode</span>という関数を使います。</p>
<div id="attachment_2481" style="width: 536px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2481" src="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-34-43.jpg" alt="テンプレート内のショートコードにはdo_shortcodeを使う" width="526" height="153" class="size-full wp-image-2481" srcset="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-34-43.jpg 526w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-34-43-300x87.jpg 300w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-34-43-320x93.jpg 320w" sizes="auto, (max-width: 526px) 100vw, 526px" /><p id="caption-attachment-2481" class="wp-caption-text">テンプレート内のショートコードにはdo_shortcodeを使う</p></div>
<p>入力したコードは次のようになります。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
&lt;?php echo do_shortcode('&#x5B;contact-form-7 id=&quot;226&quot;]'); ?&gt;
</pre>
<p>これにより、ショートコードが機能するようになります。</p>
<div id="attachment_2482" style="width: 467px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2482" src="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-36-54.jpg" alt="ショートコードが機能する" width="457" height="289" class="size-full wp-image-2482" srcset="https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-36-54.jpg 457w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-36-54-300x190.jpg 300w, https://php1st.com/wp-content/uploads/2018/07/2018-07-03-15-36-54-320x202.jpg 320w" sizes="auto, (max-width: 457px) 100vw, 457px" /><p id="caption-attachment-2482" class="wp-caption-text">ショートコードが機能する</p></div>
<h2>do_shortcodeのポイント</h2>
<p>do_shortcodeを使うときのポイントは次のとおりです。</p>
<p>do_shortcodeの書式は次のとおりで、指定したショートコードが実行されます。</p>
<pre class="brush: php; gutter: false; title: do_shortcodeの書式; notranslate">
do_shortcode(ショートコード)
</pre>
<p>文字でショートコードを指定する場合は次のようになります。ショートコードを半角のシングルクォーテーション「&#8217;」またはダブルクォーテーション「&#8221;」で囲みます。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
do_shortcode('ショートコード'); ?&gt;
</pre>
<p>実際の使用例は次のようになります。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
do_shortcode('&#x5B;contact-form-7 id=&quot;226&quot;]')
</pre>
<p>ショートコード内で「&#8221;」で囲まれた文字がある場合、ショートコードは「&#8217;」で囲む必要があります。その逆も同じです。</p>
<p>つまり、次のような記述はエラーになります。すべての記号が「&#8221;」のため、何の開始・終了の目印なのか区別できないからです。</p>
<pre class="brush: php; gutter: false; title: エラーになる記述; notranslate">
do_shortcode(&quot;&#x5B;contact-form-7 id=&quot;226&quot;]&quot;)
</pre>
<p>do_shortcodeで呼び出すショートコードから何も表示されない場合は「echo」を付けてみましょう。echoは文字を画面に表示する命令です。</p>
<pre class="brush: php; gutter: false; title: do_shortcodeの内容を画面に表示する; notranslate">
echo do_shortcode('&#x5B;contact-form-7 id=&quot;226&quot;]');
</pre>
<p>また、テンプレート内に上記のコードを書く場合、PHPの開始・終了タグが必要になるでしょう。これでecho do_shortcodeを使ったショートコード呼び出しは完了です。</p>
<pre class="brush: php; gutter: false; title: PHPの開始・終了タグを付加する; notranslate">
&lt;?php echo do_shortcode('&#x5B;contact-form-7 id=&quot;226&quot;]'); ?&gt;
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>is_categoryとin_categoryの違い</title>
		<link>https://php1st.com/2312</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 25 Oct 2016 12:51:34 +0000</pubDate>
				<category><![CDATA[WordPressのPHP]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2312</guid>

					<description><![CDATA[WordPress関数のis_categoryとin_categoryの違いについて説明します。 カテゴリーアーカイブかどうか判断するis_category is_category関数は、現在表示中のページがカテゴリーの [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>WordPress関数のis_categoryとin_categoryの違いについて説明します。</p>
<h2>カテゴリーアーカイブかどうか判断するis_category</h2>
<p>is_category関数は、現在表示中のページがカテゴリーのアーカイブページかどうか判断するときに使います。</p>
<pre class="brush: php; gutter: false; title: カテゴリーアーカイブのみに表示される文字; notranslate">
&lt;?php if(is_category()) : ?&gt;
カテゴリーアーカイブです。
&lt;?php endif; ?&gt;
</pre>
<p>is_category(&#8216;news&#8217;) のようにカテゴリー名やIDを指定すると、特定カテゴリーのアーカイブを表示中かどうか調べることができます。</p>
<pre class="brush: php; gutter: false; title: 特定カテゴリーのアーカイブのみに表示される文字; notranslate">
&lt;?php if(is_category('news')) : ?&gt;
ニュースカテゴリーのアーカイブです。
&lt;?php endif; ?&gt;
</pre>
<h2>特定カテゴリーに属する記事か判断するin_category</h2>
<p>in_category関数は個別の記事に対して使う関数で、指定したカテゴリーに所属しているかどうか判断できます。たとえば、in_category(&#8216;event&#8217;) と記述すると、その記事がイベントカテゴリーに所属する記事かどうかをチェックできます。</p>
<pre class="brush: php; gutter: false; title: 特定のカテゴリーに属する記事かどうか判断する; notranslate">
&lt;?php if(in_category('event')) : ?&gt;
イベントカテゴリーの記事です。
&lt;?php endif; ?&gt;
</pre>
<p>基本的には投稿ループ内で現在の投稿をチェックするとき使うのが定番ですが、「in_category(&#8216;event&#8217;, 73)」などのように2番目のパラメータに投稿IDを指定することで、ループ外でも任意の投稿についてチェックすることができます。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>wp_get_attachment_image_src関数の使用例</title>
		<link>https://php1st.com/2296</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 25 Oct 2016 06:51:09 +0000</pubDate>
				<category><![CDATA[WordPressのPHP]]></category>
		<guid isPermaLink="false">https://php1st.com/?p=2296</guid>

					<description><![CDATA[wp_get_attachment_image_src関数を使うと、アイキャッチ画像に関する情報（URLやサイズなど）を取得することができます。 &#60;?php $data = wp_get_attachment_im [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>wp_get_attachment_image_src関数を使うと、アイキャッチ画像に関する情報（URLやサイズなど）を取得することができます。</p>
<pre class="brush: php; gutter: false; title: 現在の投稿のアイキャッチ画像に関する情報を取得する; notranslate">
&lt;?php
$data = wp_get_attachment_image_src(
    get_post_thumbnail_id($post-&gt;ID), 'medium');
print_r($data);
?&gt;
</pre>
<div class="list-title">実行結果</div>
<div class="res">
Array<br />
(<br />
    [0] => http://…略…/wp-content/uploads/2014/07/fot0022-054-300&#215;199.jpg<br />
    [1] => 300<br />
    [2] => 199<br />
    [3] => 1<br />
)
</div>
<p>戻り値の配列には次のような情報が含まれます。</p>
<ul>
<li>[0]画像のURL</li>
<li>[1]画像の幅</li>
<li>[2]画像の高さ</li>
<li>[3]リサイズされているかどうか</li>
</ul>
<p>wp_get_attachment_image_src関数では、次のように取得するアイキャッチ画像のIDやサイズを指定することができます。</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
wp_get_attachment_image_src(添付ファイルID, サイズ);
</pre>
<p>添付ファイルIDはアイキャッチ画像に割り当てられたID（wp_postsテーブルのIDフィールド）ですが、手動で指定するのは現実的ではありません。現在の投稿のアイキャッチ画像は上記のコードのように<span class="stro">get_post_thumbnail_id($post->ID)</span>で取得することができます。</p>
<p>サイズは次のような値を指定できます。省略した場合はthumbnailになります。</p>
<ul>
<li>thumbnail</li>
<li>medium</li>
<li>large</li>
<li>full</li>
<li>array(100, 100) &#8212; 幅と高さを指定する場合</li>
</ul>
<h2>新着記事3件のアイキャッチ画像のURLを取得する</h2>
<p>新着記事3件のアイキャッチ画像のURLを取得する例は次のようになります。$data[0]の部分がURLです。便宜上、箇条書きにしてありますが、スライドショーなどに動的に画像ファイルのURLを追加する場合などの参考にしてください。</p>
<pre class="brush: php; gutter: false; title: 最新記事3件のアイキャッチ画像のURLを取得する; notranslate">
&lt;?php
$query = new WP_Query(
    array(
        'post_type' =&gt; 'post',
        'posts_per_page' =&gt; 3,
    )
);
if ( $query-&gt;have_posts() ) : ?&gt;
    &lt;ul&gt;
        &lt;?php while ( $query-&gt;have_posts() ) : $query-&gt;the_post();
            $data = wp_get_attachment_image_src(
                get_post_thumbnail_id($post-&gt;ID), 'full');
        ?&gt;
            &lt;li&gt;&lt;?php echo $data&#x5B;0]; ?&gt;&lt;/li&gt;
        &lt;?php endwhile; ?&gt;
    &lt;/ul&gt;
&lt;?php endif; wp_reset_postdata(); ?&gt;
</pre>
<h2>wp_get_attachment_image_src関数の活用例</h2>
<p>どのような場面でwp_get_attachment_image_src関数が利用されているか、具体的なコードは省略しますが、事例をあげておきます。</p>
<ul>
<li>管理画面に「アイキャッチ画像」の項目を追加したいとき</li>
<li>スライドショーに動的に画像URLを追加したいとき</li>
<li>画像の幅と高さを取得して表示サイズを調整したいとき</li>
<li>画像URLを取得してCSS（background）を動的に組み立てたいとき</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
