質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

解決済

1回答

767閲覧

Contact Form 7のフォーム内にカスタム投稿タイプの新着記事2件を出力したい

idesign0723

総合スコア18

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

0クリップ

投稿2020/09/08 13:07

編集2020/09/14 07:54

Contact Form 7のフォーム内に、お知らせ(カスタム投稿タイプ news)のカテゴリー空き情報(スラッグ aki)の新着2件を出力したいので、自作ショートコードを作ろうと思い、下記のコードをfunctions.phpに書いたのですが、get_the_content()の部分が、お客様がビジュアルモードでcontentに入力した改行が抜けて、1行になってしまいます。

こちら、お客様が入力した改行をイキのまま出力するにはどうしたら良いでしょうか?

php

1<?php 2function get_aki_list(){ 3 $args = array( 4 'post_type' => 'news', 5 'taxonomy' => 'news_cat', 6 'term' => 'aki', 7 'posts_per_page' => 2, 8 'order' => 'DESC' 9 ); 10$top_akinews = new WP_Query( $args ); 11 12if ($top_akinews->have_posts()) : 13$aki_list='<ul>'; 14while($top_akinews->have_posts()): $top_akinews->the_post(); 15$aki_list.='<li><h4 class="akijoho_h4">'.get_the_title().'</h4><p>'.get_the_content().'</p></li>'; 16 17endwhile; 18$aki_list.='</ul>'; 19endif; 20wp_reset_postdata(); 21return $aki_list; 22} 23 24wpcf7_add_form_tag('akilist', 'get_aki_list'); 25?>

実装イメージ

Contact Form 7のコンタクトフォーム追加画面に入力したものを掲載しておきます。

html

1[response] 2 3<table> 4 5 <tr> 6 <th>お名前(ひらがな)<span class="hissu">必須</span></th> 7 <td> 8 [text* your-name class:textsp placeholder"やまだ はなこ"] 9 </td> 10 </tr> 11 12 <tr> 13 <th>電話番号(半角数字)<span class="hissu">必須</span></th> 14 <td> 15 [tel your-tel class:tel placeholder"09012345678"]<br><span>※ハイフン(ー)なしでご入力ください</span> 16 </td> 17 </tr> 18 19 <tr> 20 <th>メールアドレス<span class="hissu">必須</span></th> 21 <td> 22 [email* your-email class:mailsp placeholder"xxxx@xxxx.com"] 23 </td> 24 </tr> 25 26 <tr> 27 <th>来院ご希望日</th> 28 <td> 29 <h3 id="akijoho_h3">今日・明日の空き情報をチェック!</h3> 30 <div id="akijoho"> 31 [akilist] 32 </div> 33 <div class="kibouWrap"> 34 <ul class="kibou clearfix"> 35 <li class="kbr01">第1希望</li> 36 <li class="kbr02"> 37 <span class="hissu">必須</span> 38 </li> 39 </ul> 40 <ul class="kibou clearfix"> 41 <li class="kbr03"> 42[text date01 id:select_day1 placeholder"カレンダーから選択"] 43 </li> 44 <li class="kbr04"> 45 [select jikan01 first_as_label "時間を選択" "11:00~11:30" "11:30〜12:00" "12:00〜12:30" "12:30〜13:00" "13:00〜13:30" "13:30〜14:00" "14:00〜14:30" "14:30〜15:00" "15:00〜15:30" "15:30〜16:00" "16:00〜16:30" "16:30〜17:00" "17:00〜17:30" "17:30〜18:00" "18:00〜18:30" "18:30〜19:00" "19:00〜19:30" "19:30〜20:00"] 46 </li> 47 </ul> 48 </div> 49 50 <div class="kibouWrap"> 51 <ul class="kibou clearfix"> 52 <li class="kbr01">第2希望</li> 53 <li class="kbr02"> 54 <span class="ninni">任意</span> 55 </li> 56 </ul> 57 <ul class="kibou clearfix"> 58 <li class="kbr03"> 59[text date02 id:select_day2 placeholder"カレンダーから選択"] 60 </li> 61 <li class="kbr04"> 62 [select jikan02 first_as_label "時間を選択" "11:00~11:30" "11:30〜12:00" "12:00〜12:30" "12:30〜13:00" "13:00〜13:30" "13:30〜14:00" "14:00〜14:30" "14:30〜15:00" "15:00〜15:30" "15:30〜16:00" "16:00〜16:30" "16:30〜17:00" "17:00〜17:30" "17:30〜18:00" "18:00〜18:30" "18:30〜19:00" "19:00〜19:30" "19:30〜20:00"] 63 </li> 64 </ul> 65 </div> 66 67 <div class="kibouWrap"> 68 <ul class="kibou clearfix"> 69 <li class="kbr01">第3希望</li> 70 <li class="kbr02"> 71 <span class="ninni">任意</span> 72 </li> 73 </ul> 74 <ul class="kibou clearfix"> 75 <li class="kbr03"> 76 [text date03 id:select_day3 placeholder"カレンダーから選択"] 77 </li> 78 <li class="kbr04"> 79 [select jikan03 first_as_label "時間を選択" "11:00~11:30" "11:30〜12:00" "12:00〜12:30" "12:30〜13:00" "13:00〜13:30" "13:30〜14:00" "14:00〜14:30" "14:30〜15:00" "15:00〜15:30" "15:30〜16:00" "16:00〜16:30" "16:30〜17:00" "17:00〜17:30" "17:30〜18:00" "18:00〜18:30" "18:30〜19:00" "19:00〜19:30" "19:30〜20:00"] 80 </li> 81 </ul> 82 </div> 83 </td> 84 </tr> 85 86 <tr> 87 <th>ご希望日時で予約が確保できない場合の<br>ご希望の曜日と時間帯<span class="ninni">任意</span></th> 88 <td> 89 [textarea youbi 40x2 class:content placeholder "(例)ご希望の曜日をご記入ください"]<br> 90 [checkbox timezone use_label_element "11〜15時" "15〜18時" "18〜20時"] 91 </td> 92 </tr> 93 94 <tr> 95 <th>脱毛のご希望部位<span class="ninni">任意</span></th> 96 <td> 97 [checkbox part use_label_element "全身脱毛" "VIO脱毛" "顔脱毛" "パーツ別脱毛" "脚脱毛" "針脱毛"] 98 </td> 99 </tr> 100 101 <tr> 102 <th>脱毛機械のご希望<span class="ninni">任意</span></th> 103 <td> 104 [radio machine use_label_element default:1 "なし" "前回と同じ機械" "前回と機械を変更したい"]<br> 105 [textarea machinename 40x3 class:content placeholder "(例)メディオスターNeXT PRO"] 106 </td> 107 </tr> 108 109 <tr> 110 <th>麻酔のご希望<span class="ninni">任意</span></th> 111 <td> 112 [checkbox masui use_label_element "なし" "塗るクリーム麻酔" "笑気ガス麻酔"]<br> 113 [textarea creemmasuiarea 40x2 class:content placeholder "塗るクリーム麻酔を使用したい部位をご記入ください"]<br> 114 [textarea gassmasuiarea 40x2 class:content placeholder "笑気ガス麻酔を使用したい部位をご記入ください"] 115 </td> 116 </tr> 117 118 <tr> 119 <th>ご相談がありましたら<br>ご自由にお書きください<span class="ninni">任意</span></th> 120 <td> 121 [textarea your-message 40x6 class:content placeholder "(例)脱毛サロンに通ったけれど、また生えてきたのでメールで相談したい。どのプランが良いか、金額や回数も知りたい。"] 122 </td> 123 </tr> 124 125</table> 126 127[response] 128 129<div id=formbtnWrap>[confirm class:cfm-btn "確認する >"][back class:bk-btn "< 戻る"][submit class:sub-btn "送信する >"]</div>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/08 13:34

一年以上ここを利用してるならいい加減マークダウン使え
CHERRY

2020/09/08 14:14

> Contact Form 7のフォーム内に、お知らせ(カスタム投稿タイプ news)のカテゴリー空き情報(スラッグ aki)の新着2件を出力したいので、 どのように出力したいのでしょうか? 画面キャプチャ等で、このように出力したいというのを わかりやすく説明・記載していただくことはできないでしょうか。
guest

回答1

0

ベストアンサー

ContactForm7のあれ、
実はWordPressのshortcodeじゃないんですよね

ContactForm7独自のものです

wpcf7_add_form_tagでタグ追加できます
add_shortcodeと使い方は同様


追記:

すいません、そこまではわかってるんですね

ではどういうエラーが出てるのか、ですね


これかな、出力しちゃってますね

php

1$psttype_list='<li><h4 class="akijoho_h4">'.the_title().'</h4><p>'.the_content().'</p></li>'; 23$psttype_list='<li><h4 class="akijoho_h4">'.get_the_title().'</h4><p>'.get_the_content().'</p></li>';

投稿2020/09/09 04:08

編集2020/09/09 04:15
KazuhiroHatano

総合スコア7819

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

idesign0723

2020/09/14 07:47

本当にありがとうございます。。。!!!いろいろ検証していて、返事が遅くなりました。そうだったんですね、the_title()やthe_content()で出力したらダメなんですね > < get_the_content() で値を取得したら、ビジュアルモードでお客様が入力したcontentの改行などが全部抜けて1行になってしまいました。あとこれのみ解消できたらと思うのですが、これはどうしたらいいでしょうか...
KazuhiroHatano

2020/09/14 07:51

apply_filters('the_content',get_the_content())
idesign0723

2020/09/15 02:12

できました > < 本当にありがとうございます...!!!!
idesign0723

2020/09/15 02:13

function get_aki_list(){ $args = array( 'post_type' => 'news', 'taxonomy' => 'news_cat', 'term' => 'aki', 'posts_per_page' => 2, 'order' => 'DESC' ); $top_akinews = new WP_Query( $args ); if ($top_akinews->have_posts()) : $aki_list='<ul>'; while($top_akinews->have_posts()): $top_akinews->the_post(); $aki_list.='<li><h4 class="akijoho_h4">'.get_the_title().'</h4><p>'.apply_filters('the_content',get_the_content()).'</p></li>'; endwhile; $aki_list.='</ul>'; endif; wp_reset_postdata(); return $aki_list; } wpcf7_add_form_tag('akilist', 'get_aki_list');
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問