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

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

ただいまの
回答率

90.53%

  • PHP

    23553questions

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

  • WordPress

    8738questions

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

wordpressで投稿した記事と同様のデータを引用し別の投稿ページを作りたい

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 602

ho-ri

score 2

お世話になります。

不動産サイトの運用をしており、
single.phpにプラグイン「Advance custom fields」で生成したフィールドを用いて物件の内容を投稿しております。

上記では30種類ほどのフィールドを用意しておりますが、
その投稿データの中から抜粋したフィールドとして生成したいです。

投稿をコピーする方法ではなく、1つのpostデータから2つの投稿ページを生成するような形で運用したいのですが、
良い方法はありますでしょうか?

Wordpressの基礎部分しか理解していないため、手段をご教示いただければと思います。

追記

具体的には

現在

single.phpにて、

<?php if(have_posts()): while(have_posts()): the_post(); ?>

<!-- 物件情報1 -->
<div class="detail01 btm030">
<h4><img src="<?php echo get_template_directory_uri(); ?>/images/arrowico-mid02.png" />物件空室 / 募集状況</h4>

<table class="detail_table03">
<tr>
<th>階数</th>
<th>坪数</th>
<th>賃料/円 (税別)</th>
<th>共益費(税別)</th>
<th>敷金</th>
<th>礼金</th>
<th>入居可能日</th>
<th>間取図</th>
</tr>

<?php if(post_custom('rent') == '空き'): ?>
<tr>
<td><?php the_field("kai", $post->ID); ?></td>
<td><?php the_field("tubo", $post->ID); ?></td>
<?php if(post_custom('yachin')): ?> 
<td><?php echo number_format(get_post_meta($post->ID,'yachin',true));?></td>
<?php else : ?><td><span>応相談</span></td>
<?php endif; ?>
<?php if(post_custom('kyoeki')): ?>
<td><?php echo number_format(get_post_meta($post->ID,'kyoeki',true));?></td>
<?php else : ?><td>-</td>
<?php endif; ?>
<?php if(post_custom('sikien')): ?>
<td><?php the_field("sikien", $post->ID); ?>
<?php
$array = array(
    "0" => "-"
);
?>
</td>
<?php else : ?><td>応相談</td>
<?php endif; ?>
<?php if(post_custom('reien')): ?>
<td><?php the_field("reien", $post->ID); ?></td>
<?php else : ?><td>応相談</td>
<?php endif; ?>
<?php if(post_custom('checkin')): ?>
<td><?php the_field("checkin", $post->ID); ?></td>
<?php else : ?><td>応相談</td>
<?php endif; ?>
<?php if(post_custom('space')): ?>
<td><a href="javascript:w=window.open('<?php the_field("space", $post->ID); ?>','','scrollbars=yes,Width=470,Height=350');w.focus();">間取図</a></td>
<?php else : ?><td>-</td>
<?php endif; ?>
</tr>
<?php endif; ?>
</table>
<div><!-- datail01 -->
<!-- //物件情報1 -->

<!-- 物件情報2 -->
<div class="detail02 btm050">
<table class="detail_table01">
<tr>
<th>住所</th>
<td><?php the_field("address", $post->ID); ?></td>
</tr>
<tr>
<th>最寄駅</th>
<td><?php the_field("station", $post->ID); ?>駅】    約<?php the_field("walk", $post->ID); ?><?php if(post_custom('station2')): ?><?php the_field("station2", $post->ID); ?>駅】 約<?php the_field("walk2", $post->ID); ?></td>
</tr>
<?php endif; ?>
<?php if(post_custom('year')): ?>
<tr>
<th>竣工年月</th>
<td><?php the_field("year", $post->ID); ?></td>
</tr>
<?php endif; ?>
<?php if(post_custom('upkai')): ?>
<tr>
<th>地上階/地下階</th>
<td><?php the_field("upkai", $post->ID); ?></td>
</tr>
<?php endif; ?>
<?php if(post_custom('kozo')): ?>
<tr>
<th>構造</th>
<td><?php the_field("kozo", $post->ID); ?></td>
</tr>
<?php endif; ?>
<?php if(post_custom('text')): ?>
<tr>
<th><?php the_title(); ?>の特長</th>
<td><?php the_field("text", $post->ID); ?></td>
</tr>
<?php endif; ?>
</table>

</div><!-- datail02 -->
<!-- //物件情報2 -->

<?php endwhile; else: ?>
<p><?php echo "お探しの記事、ページは見つかりませんでした。"; ?></p>
<?php endif; ?>

上記のような形で、カスタムフィールドで投稿した物件情報を出力しております。


上記と同じpostの情報を用いて印刷出力用に別のページを出力したいと思っております。

<?php if(have_posts()): while(have_posts()): the_post(); ?>

<section class="title">
<p class="title_name"><?php the_title(); ?></p>
</section>

<section class="outline clearfix">
<h2>物件概要</h2>
<dl class="add"><dt>所在地</dt><dd><?php if(post_custom('address')): ?><?php the_field("address", $post->ID); ?><?php endif; ?></dd></dl>
<dl><dt>竣工</dt><dd><?php if(post_custom('year')): ?><?php the_field("year", $post->ID); ?><?php endif; ?></dd></dl>
<dl><dt>構造</dt><dd><?php if(post_custom('kozo')): ?><?php the_field("kozo", $post->ID); ?><?php endif; ?></dd></dl>
<dl><dt>規模</dt><dd><?php if(post_custom('upkai')): ?><?php the_field("upkai", $post->ID); ?><?php endif; ?></dd></dl>
<dl><dt>時間制限</dt><dd><?php if(post_custom('time')): ?><?php the_field("time", $post->ID); ?><?php endif; ?></dd></dl>
<dl><dt>トイレ</dt><dd>トイレの出力</dd></dl>
<dl><dt>空調</dt><dd><?php if(post_custom('air')): ?><?php the_field("air", $post->ID); ?><?php endif; ?></dd></dl>
<dl><dt></dt><dd><?php if(post_custom('time')): ?><?php the_field("oa", $post->ID); ?><?php endif; ?></dd></dl>
</section>

<section class="property">
<table class="type1">
<thead>
<tr>
<th scope="cols">階数</th>
<th scope="cols">面積</th>
<th scope="cols">敷金</th>
<th scope="cols">賃料(税別)</th>
<th scope="cols">共益費(税別)</th>
<th scope="cols">礼金</th>
<th scope="cols">契約期間</th>
<th scope="cols">入居日</th>
<th scope="cols">天井高</th>
<th scope="cols">備考</th>
</tr>
</thead>

<tbody>
<!-- テナント情報 -->
<?php if(post_custom('rent') == '空き'): ?>
<tr>
<?php if(post_custom('kai')): ?>
<td><?php the_field("kai", $post->ID); ?></td>
<?php else : ?><td><span>応相談</span></td>
<?php endif; ?>
<?php if(post_custom('kyoeki')): ?>
<td><?php the_field("tubo", $post->ID); ?></td>
<td>12ヵ月</td>
<?php else : ?><td><span>応相談</span></td>
<?php endif; ?>
<?php if(post_custom('yachin')): ?> 
<td><?php echo number_format(get_post_meta($post->ID,'yachin',true));?></td>
<?php else : ?><td><span>応相談</span></td>
<?php endif; ?>
<?php if(post_custom('kyoeki')): ?>
<td><?php echo number_format(get_post_meta($post->ID,'kyoeki',true));?></td>
<?php else : ?><td>-</td>
<?php endif; ?>
<?php if(post_custom('reien')): ?>
<td><?php the_field("reien", $post->ID); ?></td>
<?php else : ?><td>応相談</td>
<?php endif; ?>
<td>2年間</td>
<?php if(post_custom('checkin')): ?>
<td><?php the_field("checkin", $post->ID); ?></td>
<?php else : ?><td>応相談</td>
<?php endif; ?>
<?php if(post_custom('high')): ?>
<td><?php the_field("high", $post->ID); ?></td>
<?php else : ?><td>応相談</td>
<?php endif; ?>
<?php if(post_custom('biko')): ?>
<td><?php the_field("biko", $post->ID); ?></td>
<?php else : ?><td>応相談</td>
<?php endif; ?>
</tr>
<?php endif; ?>
<!-- //テナント情報 -->
</tbody>
</table>
</section>

<?php endwhile; else: ?>
<p><?php echo "お探しの記事、ページは見つかりませんでした。"; ?></p>
<?php endif; ?>

※ 投稿には設置されており、single.phpでは出力していないカスタムフィールドを、印刷用では利用していますのでご了承ください。

上記のような形で既存のsingle.phpで出力される情報とは別に、同様のpostのデータを用いて別ページを出力する方法はございますでしょうか。

よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • kei344

    2017/02/09 00:56

    もう少し具体的に記述していただけませんか?

    キャンセル

回答 2

check解決した方法

0

お世話になります。

こちらのページを見つけ参考にし、
1つのpostデータから2つの別テンプレートページを生成する形で設置しました。

1つの投稿から2つのURLとテンプレートで出力・解説
http://doshirouto.wp.xdomain.jp/web/wordpress/2091

今回はすでに構築されているsingle.phpやstyle.cssに対して、こちらをあまり変更・修正せず印刷用に別テンプレートを当て込みたかったため、
印刷用cssではなく上記方法を取りました。

ご回答ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ページの出し分けでなく、印刷用CSSで対応されてはいかがでしょう。

【印刷用CSS(@media print)を確認・デバッグする方法 | 編集長ブログ―安田英久 | Web担当者Forum】
http://web-tan.forum.impressrd.jp/e/2015/07/28/20508

【Webページ(HTML)の印刷用CSS設定 - palm84.hatenablog.com】
http://palm84.hatenablog.com/entry/20160115/1452851856

【印刷用CSSをまとめてみた。 - TRANS】
http://trans.hatenablog.jp/entry/20061208/p1

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/15 16:15

    ご返信ありがとうございます。
    印刷用CSSもいくつか参考にさせていただきましたが
    カスタムフィールドから出力したい項目や配置、並び順なども両ページで異なるため、印刷用のCSSだけでは実現できそうもなかったため、別ページでの出力方法を検討しておりました。

    印刷用cssでの制御だけでWEBで出力していないフィールドデータを印刷用に出力する方法はございますか?

    もしくは、1つのpostデータから2つの異なるページを出力する方法がございましたら、教えていただければと存じます。

    よろしくお願いいたします。

    キャンセル

  • 2017/02/15 16:17

    > 印刷用cssでの制御だけでWEBで出力していないフィールドデータを印刷用に出力する方法はございますか?

    両方出力しておいてスクリーン用(ブラウザ用)CSSでは印刷に使うものを消せばよいだけです。

    キャンセル

  • 2017/02/19 09:58

    ご返信ありがとうございます。

    新規構築で印刷が必須になる場合などには上記情報を参考にし印刷用cssで構築しようと思います。

    キャンセル

同じタグがついた質問を見る

  • PHP

    23553questions

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

  • WordPress

    8738questions

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