固定ページのブロック編集でカスタムhtmlにphpソースを書き込むことで同じサーバにある別サイトの新着記事を表示させ、それを静的化したいと考えています。
そこで以下のサイトを参考にして固定ページを作成しました。
https://www.goodcircle.jp/blog834/
挿入したソース
<?php require_once( dirname(dirname( __FILE__ )) . '../betusite/wp-load.php' ); ?> <dl> <?php $args = array( "numberposts" => 15, //表示する記事の数 "post_type" => 'blog' //投稿タイプ名 // 条件を追加する場合はここに追記 ); $customPosts = get_posts($args); if($customPosts) ; foreach($customPosts as $post) ; setup_postdata( $post ); ?> <dt><?php the_time('Y年m月d日'); ?></dt> <dd><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></dd> <?php endforeach; ?> <?php else : //記事が無い場合 ?> <?php endif; wp_reset_postdata(); //クエリのリセット echo '<img src="'.$thumbimg.'/images/sample.jpg">'; ?> </dl>
プレビュー画面で見ると
15, //表示する記事の数 "post_type" => 'blog' //投稿タイプ名 // 条件を追加する場合はここに追記 ); $customPosts = get_posts($args); if($customPosts) ; foreach($customPosts as $post) ; setup_postdata( $post ); ?> '; ?>
となってしまいます。正しく表示させる方法をご教示ください。
皆様からご教示いただいたように
そもそもhtmlファイルでphpが実行できていないからというのが第一かと考えました。
いろいろな方法があるかと思いますが、最も簡単な方法で試してみます。
http.confに
AddType application/x-httpd-php .php .html
AddHandler application/x-httpd-php .php .html
を追記してhttpdを再起動させます。内部側のサーバであり、セキュリティの問題も少ないかと思いますので一旦これで試してみます。
ワードプレスのRSSフィードを使ってみました
最終的にはワードプレスのRSSフィードを使って、同じサーバ内の他サイト新着記事を表示させるのが簡単なようです。
問題は、静的化するとリンク先がワードプレスサーバのローカルアドレスを表示し、当然公開サーバに転送するとリンク切れを起こします。
ドメインに置き換えるのはかなり難しいと思いますので、できればRSSのURLを非表示にしたいと思います。
あるサイトに
head内のフィードURLを消す方法 こちらは、フィード配信を停止するのではなく、head内にurlを出力されるのを停止します。おもにブラウザに自動的に読み取ってもらうための機能です。 remove_action( 'wp_head', 'feed_links', 2); // 1~2を消去 remove_action( 'wp_head', 'feed_links_extra', 3); // 3~7を消去
というのがあったので子テーマに記述しましたが、これは自サイトのRSS表示を制御するようで、取り込んだRSSには適用していないようです。
取り込んだRSS記事のURLを非表示にするにはどうするかお教えいただけないでしょうか。