web-dev-qa-db-ja.com

投稿コンテンツをiframeに読み込む

WordPressページのリンクをクリックしたときに、WordPress投稿をiframeにロードしたいと思います。これは私が現在持っているリンクです。

<a href="' . get_post_permalink($sight->ID) . '" target="map-loader">Read the report</a>

それから私はリンクがクリックされたときにその投稿のコンテンツ(ヘッダやフッタなどなし)をiframeにロードしたいです。これはページ上にあるiframeです。

<iframe name="map-loader" src="map-iframe.php"></iframe>

私は途中です。リンクがクリックされると、iframeはヘッダーとフッターなどを含む完全なwordpressページをロードします。私が欲しいのはiframeにロードされる実際の投稿コンテンツです。

私はこれをmap-iframe.phpで試しましたが成功しませんでした。 Wordpressのテンプレート全体を読み込みます。

<?php the_content('Read the rest of this entry »'); ?>

私のリンクには、投稿コンテンツのみをロードすることを指定するものが必要だと思います。

それとも、Ajaxを使ったほうがいいでしょうか。

2
user1681447

確信はありませんが、私はAjaxソリューションがより適切であろうと思います。

しかし、とにかく、私がこれを正しく理解しているならば、あなたは完全な投稿がiframeの中にロードされているアーカイブを持っています。

この場合、テンプレートファイル(single.php)を修正して、ヘッダーとフッターを削除することができます。

テンプレート階層を見てください

さらに読むために私はより高度な機能にあなたを導くであろうこれを見つけました: http://bavotasan.com/2009/custom-template-for-single-posts-in-wordpress/

注意:あなたもadminbarを取り除きたい場合は、これを試してみてください:あなたのコードの先頭にあるshow_admin_bar(false);

テストしていませんが、これがうまくいかない場合は、initの内側にフックしてチェックすることができます。

if(is_page()) {
    show_admin_bar(false);
}

編集する

IDに応じて投稿される新しいページを設定することもできます。

最初にカスタムテンプレートを作成しましょう

  • あなたのthemesフォルダにファイルtemplate-iframe.phpを作成してください(例えば)
  • このコードを中に入れる

<?php
/*
* Template Name: IFrame
*/
   $id = intval($_GET["ID"]);
   $post = get_post($id);
   var_dump($post);
?>
  • 次にダッシュボードに移動してページiframeを作成し、サイドバーに次のように表示されます。template、今作成したテンプレート(Iframe)を選択します。
  • 保存してURLと時刻に移動します http://yoururl.domain/iframe /?ID = 1

それはあなたにあなたの投稿を返します

もちろん、あなたはあなた自身のテンプレートをデザインする必要があります。

3
CBeTJlu4ok