この機能を使用して、テーマの内容を制限しています。しかし、問題は私が関数を呼び出すときはいつでも、それはまた画像キャプションを表示します。 _content_limit関数を呼び出すときに画像のキャプションを削除したいのですが。
これがコードです:
function the_content_limit($max_char, $more_link_text = '', $stripteaser = 0, $more_file = '') {
$content = get_the_content($more_link_text, $stripteaser, $more_file);
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
$content = strip_tags($content);
if (strlen($_GET['p']) > 0) {
echo "";
echo $content;
echo " <a href='";
the_permalink();
echo "'>"."Read More →</a>";
echo "";
}
else if ((strlen($content)>$max_char) && ($espacio = strpos($content, " ", $max_char ))) {
$content = substr($content, 0, $espacio);
$content = $content;
echo "";
echo $content;
echo "...";
echo " <a href='";
the_permalink();
echo "'>"."</a>";
echo "";
}
else {
echo "";
echo $content;
echo " <a href='";
the_permalink();
echo "'>"."Read More →</a>";
echo "";
}
}
Wordpressの画像キャプションは実際にはショートコードです。ショートコードはフィルタによって適用されます。
$ content = apply_filters( 'the_content'、$ content);
たとえば、画像キャプションを入力すると、Wordpressはコンテンツに次のコードを作成します。
[caption id = "attachment_55" align = "alignleft" width = "127" caption = "これが私のキャプションです]] [/ caption]
コンテンツを正しく表示する には、まだapply_filters()を使用する必要があります 。 (安全なコンテンツ表示と他のすべてのショートコード)
もしあなたがショートコードを望まないのなら(あなたがストリップタグをやっているので、それはそれがどのように見えるかです)あなたはただこれを使うべきです:
$ content = strip_shortcodes($ content);
しかし、それが特に[キャプション]ショートコードであるなら、私はこれがうまくいくと思います、あなたが単にあなたのコードにstring-replace行を追加したいのなら:
$ content = get_the_content($ more_link_text、$ stripteaser、$ more_file); // remove [caption]ショートコード $ content = preg_replace( "/\[caption。*\[\/caption \]/"、 ''、$ content); //短いコードが適用されます $ content = apply_filters( 'the_content'、$ content);