4

wordpress 用の非常にユニークで JavaScript を多用するテーマを作成しましたが、ショートコードが機能しなくなりました。プラグインをインストールしていないので、そうではありません。ショートコードを使用するために必要な wordpress テンプレート ファイルから削除したもの (例: [gallery])。

ショートコードの作成方法は理解していますが、WP はどのように投稿を取得し、表示のために吐き出すときに「[gallery]」を置き換えますか?

編集:これが私が現在取り組んでいるものです:

    $pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' ORDER BY menu_order", ARRAY_A);
    $i = 1;
    foreach ($pagepull as $single_page){
     echo "<div class=\"section\"><ul><li class=\"sub\" id=\"" . $i  . "\"><div class=\"insection\">";
         echo $single_page['post_content'];
$i++;
// more code that is irrelevant...
// more code that is irrelevant...
// more code that is irrelevant...
    }
4

5 に答える 5

11

OK、これを試してください

 $pagepull = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_type = 'page' AND post_status = 'publish' ORDER BY menu_order", ARRAY_A);
    $i = 1;
    foreach ($pagepull as $single_page){
     echo "<div class=\"section\"><ul><li class=\"sub\" id=\"" . $i  . "\"><div class=\"insection\">";
         echo apply_filters('the_content',$single_page['post_content']);
$i++;

Wordpressはコンテンツを取得し、それにフィルターを適用します。フィルタを登録して、コンテンツを解析する必要があります。

テーマにショートコードが表示されていない場合は、Wordpressでフィルタリングせずに投稿のコンテンツを出力している可能性があります。

投稿に対して関数get_the_content()を呼び出すと、ショートコード(存在する場合)のフィルターは実行されません。

応募する

<?php apply_filters('the_content',get_the_content( $more_link_text, $stripteaser, $more_file )) ?>

参照:http ://codex.wordpress.org/Function_Reference/get_the_content

注:多くのプラグインは、ショートコードを実装するためにコンテンツにフィルターを登録します!

于 2011-01-27T12:11:19.057 に答える
1

同じ問題がありました。

ショートコードは WP Loop に依存していますが、それは別の問題です。長い話を短くするために、ショートthe_post();コードを表示する必要があるページに追加しました (例: articles.php)。

また、the_content()テキストを表示するために を使用していることを確認してください ($post->post_dataたとえば、 を使用してもショートコードは表示されません)。

于 2013-10-01T13:18:00.147 に答える
0

をご利用ください

ob_start();

機能と使用の開始時

return ob_get_clean();

関数を閉じる前に。

これがあなたのために完全に役立つことを願っています.

乾杯

于 2013-09-06T10:29:21.603 に答える
0

私の解決策は置き換えられました

<?= get_the_content() ?>

<?= the_content() ?>

keatch が既に述べたように、コンテンツを返す前にフィルターを適用します。

the_content についてはこちらをよくお読みください

于 2012-06-04T12:41:46.900 に答える