(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。WordPressのショートコードを使って、数件の新着記事をアイキャッチ画像つきで表示する機能を実装している最中です。WordPressのショートコードでforeach文で配列内のテキストを全て表示する方法PHPではいくつか繰り返しの構文があります。今回の記事ではWordPressのショートコードでforeach文の繰り返しを使って配列内の全てのテキストを表示する方法についてお伝えします。tonari-it.com2016.07.03配列内の要素一つ一つに対して繰り返し処理を行うforeach文を使って複数のテキストをショートコードで表示するということをやっていました。今回は、いよいよその対象を投稿記事にしていきたいと思います。WordPressのショートコードで複数の記事タイトルを表示する方法についてお伝えします。最新の投稿記事のタイトルを表示するショートコードグローバル変数$postを使う宣言get_postsで投稿を配列で取得するthe_titleで現在対象となっている記事タイトルを返すsetup_postdataで現在対象としている記事をセットするグローバル変数$postをリセットする実行結果まとめ連載目次:WordPressのショートコードで新着記事を表示する前回のおさらいと方針まず前回のおさらいですが、テーマの編集(functions.php)に記述するPHPプログラムは以下のようなものでした。$retHTML;}add_shortcode('text','print_text');エディタ内で[text]というショートコードを入力することで、各野菜名が改行ありで表示されるといったものです。今回は野菜名ではなくて、投稿記事のタイトルになります。取得した配列に対して同様にforeach文で繰り返し現在対象とする記事についてそのタイトルを返すという流れになります。最新の投稿記事のタイトルを表示するショートコード最新の投稿記事のタイトルを表示するショートコードは以下のPHPプログラムをfunctions.phpに追加することで作成することができます。$retHTML;}add_shortcode('list','print_post_name');少しずつ階段を上がりたいんですが...投稿記事を取り扱う上でイモヅル的にマスターしなければいけないものが出てきてしまいました。以下で順を追って解説をしていきます。$post;」ですが、いきなり厄介な奴が出てきてしまいました。globalはPHPにおいてその関数内でも指定したグローバル変数を扱えるようにする命令です。WordPressはたくさんのphpファイルがアチコチで活躍をしているのですが、その全体で横断して使っている変数がいくつかあります。いう特定の関数内に使用範囲を限定されずに、アチコチで横断して使われる変数をグローバル変数と言うのですが、「$post」もそのグローバル変数の一つでその名の通り投稿について格納をする変数です。後で登場するテンプレートタグや関数ではこのグローバル変数を使用しなければいけないものが出てきますので、この関数内でも使えるようにグローバル変数「$post」を使う宣言をしています。ちなみに、特定の関数内でのみ使う変数をローカル変数と言います。get_postsで投稿を配列で取得する5行目「$myposts=get_posts();」について説明をします。get_postsはWordPressの投稿を配列で取得する関数です。get_posts($args)取得する投稿の条件について様々なパラメータを指定することができますが、そのパラメータを配列として$argsに指定します。今回は最もシンプルな例ということで、何のパラメータも指定せずに実行をしています。取得する投稿の数は5取得する順番は投稿日時の降順というのが規定値となりますので、最新の記事から順番に5つ取得されます。6~9行目のforeachで、その取得した記事の一つ一つについて繰り返し処理をするということになります。the_titleで現在対象となっている記事タイトルを返す順番が逆なのですが、8行目の「the_title(”,”,false)」について先に説明をします。ここが、このプログラムの最終目的で記事タイトルを返す部分になっています。WordPressにはテンプレートタグというものが用意されています。テンプレートタグはWordPress用に定義されている一部の関数で、WordPressに対して様々な指示をすることができるものです。the_titleはテンプレートタグの一つで、その他の通り記事タイトルを表示または返します。記事タイトルを表示(true)か返す(false)かを指定を指定します。今回は前後のテキストは不要なのでnull、記事タイトルを返したいので$echoはfalseを指定しています。the_titleはループ内(foreachなどの)での使用に限定されています。WordPressのテンプレートタグには、このようにループ内またはループ外など使用する場所が限定されている場合があるので、ご注意下さい。setup_postdataで現在対象としている記事をセットする前述のthe_titleですが、引数には「$post」が指定されていませんよね。その繰り返しで$postに格納されている記事のタイトルを出力してくれます。その立役者になっているのが、7行目の「setup_postdata($post);」です。グローバル変数$postを引数としてsetup_postdata関数を実行することで、今対象にしている記事は$postなんだよとセットされる形になります。これにより、the_titleなどのテンプレートタグがそのセットされている記事について取り出してきてくれるようになるということです。グローバル変数$postをリセットする最後になりますが、10行目「wp_reset_postdata();」です。wp_reset_postdata関数はグローバル変数$postの内容をクリアにする関数です。前述のとおり、$postはWordPress内の様々な場所で活躍している変数ですが、今回のプログラムでそれを上書きして使っている形になります。それを使用する前に復元をします。いかがだったでしょうか?このPHPプログラムをfunctions.phpに追加をした上でショートコード[[list]]をエディタに記載してプレビューをしますとこのように最新記事の5件の記事タイトルが表示されました。たどり着きましたね...!まとめWordPressで最新の記事タイトルのいくつかを表示するショートコードを作成しました。グローバル変数$post、投稿を配列で取得するget_posts関数、記事タイトルを返すテンプレートタグthe_title、記事データのセットをするsetup_postdata、$postをリセットするwp_reset_postdata関数...マスターすべき要素が一気に増えたので、なかなか大変ではありますが、一つ一つマスターしていきたいですね。次回は記事のパーマリンクと投稿日を取得する方法です。やれることを増やしていきたいと思います。WordPressショートコードで記事のパーマリンクと投稿日を取得する方法WordPressのショートコードで、数件の新着記事をアイキャッチ画像つきで表示する機能の実装を目指しています。今回はショートコードで記事のパーマリンクと投稿日を取得して表示をしていきます。tonari-it.com2016.07.17どうぞお楽しみに!連載目次:WordPressのショートコードで新着記事を表示する初心者でもWordPressショートコードを自作することを目標にして、数件の新着記事をアイキャッチ画像つきで表示する機能を題材として連載形式でショートコードの作り方をお伝えしていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事WordPress・ブログWordPressでコードやソースを記述するための特殊文字変換はAddQuickTagで一発解決ブログにコードやソースを表示する際、一部の文字はHTMLタグと解釈されないよう特殊文字に変換しなければなりません。AddQuicktagプラグインを使用すると、投稿エディタ上で変換と再変換(元に戻す)が、ボタン一つで変換できるようになります。2016.12.09Excel・VBA活用術エクセルVBAでWordPress投稿用HTMLソースを自動で生成するWordPressサイトのソースをエクセルVBAで自動生成する方法についてのシリーズ。初回の今回ですが、エクセルの入力情報をもとにシングルページの1つのセクションについて自動でコード生成をする方法です。2016.04.05WordPress・ブログ公開から1年以上経ったブログの記事が今でも大活躍してくれていることに感動せざるを得ないブログを書き始めて1年と3カ月ほどが過ぎました。人気記事のランキングにあまり変化がないことをきっかけに調べたところ、公開から1年以上経っている記事たちが今でも十分に活躍していることがわかりました。2016.05.31WordPress・ブログWordPress初心者が間違いなくハマる7つの罠と回避方法Wordpressは簡単に扱えるように設計されています。そこには初心者だと間違いなくハマってしまう罠がいくつかあるのです。今回は私が実際にキレイにハマった罠とその解決法について紹介をします。2015.04.18WordPress・ブログContactForm7の入力フォームをブログテーマSimplicity2でも完全レスポンシブにする方法ContactForm7を有名ブログテーマSimplicity2で完全レスポンシブにする場合、事前設定が必要です。設定のガイドと、コピペで使えるCSSおよびフォーム作成ソースをご紹介しています。2016.10.06WordPress・ブログWordPressの投稿をMarkdownで書いて執筆速度をアップ!WordPressのテキストエディタ。タグを閉じるのが面倒ですよね。Markdown記法というテクニックを使ってサクサクWordPressの記事を書く方法についてお伝えします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。