0

投稿/ページをテーマ ファイルの 1 つに挿入しようとしていますが、ショートコードや php が表示されません

私はワードプレスの管理画面でホームと呼ばれるページを作成し、次のコードに挿入しました:

<div id="home_page"> <!-- echos the content from the page "home" id:43 -->
            <?php $home_id = 43;
            $home_page = get_page( $home_id );
            ?>  
            <?php echo $home_page->post_content; ?>
    </div> <!-- end #home_page -->

ページ内にあるショートコードは機能しません。をインストールしてphp in post or pagephpを使用しようとしましたが、機能しません。

挿入するとき

echo do_shortcode('[youtube_sc url=http://www.youtube.com/watch?v=Db3XGpt6nNU]');

それが機能するコードに直接。

これが起こることを知っている人はいますか?

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

4

2 に答える 2

1

wordpress.stackexchange.comで回答を得ました

私は引用します:

フィルタ the_content を適用する必要があります。例:

<?php echo apply_filters('the_content',$home_page->post_content); ?> また、YouTube 用のカスタム ショートコードは必要ありません。コンテンツに URL を挿入するだけで (ハイパーリンクではありません)、実行時に YouTube プレーヤーに置き換えられます。oembed のおかげで、プラグインや追加のコードは必要ありません。

ありがとうトム・J・ノウェル

于 2012-04-05T09:20:57.880 に答える
0

$home_page->post_content の値は、データベースに保存されている正確な投稿コンテンツです。これを繰り返しても、ショートコードを実行する機会はありません。

「WordPress ループ」を使用してコンテンツを表示する必要があります。これにより、the_title() や the_content() などのテンプレート タグを使用できるようになります。これにより、ショートコードの処理関数や wpautop() などの他の関数が呼び出されます。その「マッサージ」投稿コンテンツを出力します。

ループを使用したくない場合は、echo do_shortcode($home_page->post_content); を使用してコンテンツを出力できます。

これにより、投稿コンテンツがショートコード プロセッサを介して実行され、ショートコードが実行される機会が与えられます。

WordPress の「メッセージ」投稿コンテンツの詳細については、http: //codex.wordpress.org/How_WordPress_Processes_Post_Contentを参照してください。

于 2012-04-05T03:03:44.790 に答える