2011-01-27 15 views
4

私は非常にユニークでJavaScriptの集中的なテーマをwordpressに作成しましたが、現在はショートコードが機能しません。私はプラグインがインストールされていないので、そうではありません。ショートコードを使用するために必要な私のWordPressテンプレートファイル(つまり、[ギャラリー])から何を削除しましたか?Wordpressのショートコードが動作しない

私はショートコードを作成する方法を理解していますが、WPがあなたの投稿を受け取り、表示するためにそれを吐き出すとき、「[ギャラリー]」をどのように置き換えますか?

EDIT:ここ は、私が現在働いているものです: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 $single_page['post_content']; 
$i++; 
// more code that is irrelevant... 
// more code that is irrelevant... 
// more code that is irrelevant... 
    } 
+0

下記の私の答えを見てください! – keatch

+1

短い答え:フィルタリングされたコンテンツの代わりに生のコンテンツ($ single_page ['post_content'])を使用しています:the_contentフィルタを適用してください。 echo apply_filters( 'the_content'、$ single_page ['post_content']); – keatch

答えて

11

、この

$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()関数を呼び出すと、ショートコード(存在する場合)のフィルタは実行されません。 http://codex.wordpress.org/Function_Reference/get_the_content

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

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

文献を適用していると

+0

コメントありがとう!あなたが私の新しい編集についてコメントしてもらえますか? – Dave

0

私のソリューションは、すでに述べたkeatchとして、コンテンツを返す前にフィルタを適用し、

<?= the_content() ?> 

<?= get_the_content() ?> 

を交換しました。

Read this carefully about the_content

1

使用これは、変数内のコンテンツたい場合:

ob_start(); 
the_content(); 
$content = ob_get_clean(); 

を今すぐあなただけのエコー$コンテンツを行うことができます。正規表現を使用したり、コンテンツの見た目を見た目に変えたりしたい場合は、それを使用します。

0

機能の開始に

ob_start(); 

を使用して機能を閉じる前に

return ob_get_clean(); 

を使用してください。

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

乾杯

1

私は同じ問題がありました。

ショートコードはWPループに依存しますが、それは別の問題です。短い話をするために、ショートコードを表示するページにthe_post();を追加しました(たとえばarticles.php)。

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

関連する問題