サポート » テーマ » 固定ページに別のwordpressの固定ページの内容を表示

  • 解決済 tohaku

    (@tohaku)


    お世話になります。

    現在
    サイトA(/wp)
    サイトB(/child/wp)
    と2つのwordpressを設置し、サイトBのほうはベーシック認証でアクセス制限をして運営しています。
    サイトA/B両方に注意書きのページを作り、Bの方にはAの注意書き+αの内容を記述しています。
    Bの注意書きのAと共通する部分を、ショートコードを使ってAから読み込むことは可能でしょうか?
    以下の通り試してみたのですが、何も表示されません。
    ——————————-

    1. Aのテンプレートにcontent-attention.phpというファイルを追加
    2. Aのcontent-attention.phpに以下の通り記述。
      <?php
      	$page_id = 2;
      	$content = get_page($page_id);
      	echo $content -> post_content;
      ?>
    3. Bのfunctions.phpに以下の通り記述。
      function show_attention_func( $atts ) {
        extract( shortcode_atts( array(
          'file' => ''
        ), $atts ) );
      
        if ($file!='')
          return @file_get_contents( $file );
      }
      add_shortcode( 'show_attention', 'show_attention_func' );
    4. Bの固定ページ(注意書き)に以下の通り記述
      [show_attention file="/child/wp/wp-content/themes/theme/content-attention.php"]

    ——————————-
    どこか間違っているのか、それともそもそもこういう使い方は出来ないのか、アドバイスをいただけると助かります。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • その後、多少進展して以下のように修正してみました
    ——————————-

    1. Aのテンプレートにcontent-attention.phpというファイルを追加
    2. Aのcontent-attention.phpに以下の通り記述。
      <?php
      /*
      Template Name: ATTENTION
      */
      ?>
      <?php
      	$page_id = ●;//attention-includeのページID
      	$content = get_page($page_id);
      	echo $content -> post_content;
      ?>
    3. Aに新規固定ページattention-includeを追加し、テンプレートにcontent-attention.phpを指定。
      http://aaa.com/attention-include/
      にアクセスして表示を確認。
    4. Bのfunctions.phpに以下の通り記述。
      function PHP_Include($params = array()) {
      	extract(shortcode_atts(array(
      	    'file' => 'default'
      	), $params));
      	ob_start();
      	include("$file");// xxx行目
      	return ob_get_clean();
      }
      // register shortcode
      add_shortcode('tp', 'PHP_Include');
    5. Bの固定ページ(注意書き)に以下の通り記述
      [tp file="/attention-include/"]

    ——————————-
    すると
    failed to open stream: No such file or directory in /Bのテーマのパス/functions.php on line xxx
    とエラーが出てしまいます。
    どこを直せばインクルードできるでしょうか?

    Bのfunction.php

    function show_file_func( $atts ) {
      extract( shortcode_atts( array(
        'file' => ''
      ), $atts ) );
    
      if ($file!='')
        return @file_get_contents($file);
    }
    add_shortcode( 'show_file', 'show_file_func' );

    固定ページに
    [show_file file=”http://zzz.com/attention-include/”%5D

    で表示できました。

    お騒がせいたしました。

    無駄にスレッドを作ってすみませんでした

    解決済みのところすんません!
    余計なお世話とはおもいますが
    wp_remote_get()
    を使うと、もう少し複雑な事をしたい時とかエラー処理が必要になった時に
    ちょっと幸せになれるかもしれません。

    参考:
    http://hayashikejinan.com/wordpress/functions/371/

    自分が最近使ってみてちょっと幸せになったので共有してみましたw

    >formlessさん

    なるほど!
    ありがとうございます、初心者にはありがたい情報です。
    勉強になります。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「固定ページに別のwordpressの固定ページの内容を表示」には新たに返信することはできません。