1
4

3 に答える 3

1

WordPress Codexから

ショートコード ハンドラ関数の戻り値は、ショートコード マクロの代わりに投稿コンテンツ出力に挿入されます。エコーではなく return を使用することを忘れないでください。エコーされたものはすべてブラウザーに出力されますが、ページの正しい場所には表示されません。

ショートコードは、wpautop および wptexturize ポスト フォーマットが適用された後に解析されます (ただし、2.5.0 と 2.5.1 の違いについては以下の注を参照してください)。これは、ショートコード出力 HTML に自動的にカーリー クォーテーションが適用されたり、p および br タグが追加されたりしないことを意味します。ショートコード出力をフォーマットしたい場合は、ショートコード ハンドラーから出力を返すときに wpautop() または wptexturize() を直接呼び出す必要があります。

wpautop はショートコードの構文を認識し、1 行に単独で存在するショートコードを p または br タグでラップしないようにします。この方法での使用を意図したショートコードは、出力が p や div などの適切なブロック タグでラップされていることを確認する必要があります。

于 2011-10-21T15:45:58.107 に答える
0

これが役立つかどうかはわかりませんが、外側の引用符を単一引用符に変更してみましたか?

[jasminesays quote='blah <a href="#">de</a> blah']

または内側の引用符を削除しますか?

[jasminesays quote="blah <a href=#>de</a> blah"]
于 2011-12-22T19:01:43.977 に答える
0

ショートコードに url オプションを追加しないのはなぜですか?

追加するようなもの:

    function mm_jasmineSays( $atts ) { 
extract( shortcode_atts( array(  
"quote" => '',
"url" => '',
), $atts ) );

そして追加

<a href="'.$url.'"> <h2>Jasmine says...</h2></a>

多分それはうまくいくかもしれません..または代わりに $output を使用すると、次のように返されます。

global $post;
$output .= '<div class="jasmine-says">';
if($quote !== '')
$output .= '<a href="'.$url.'"><h2>Jasmine says...</h2>';
        $output .= '<div class="jasmine-says-quote">'
            $output .='<p><img src="'.get_bloginfo( 'template_directory' ).'/imgs/shortcodes/quote-1.jpg" /></p>';
            $output .='<p class="quote">'.$quote.'</p>';
            $output .='<p><img src="'.get_bloginfo( 'template_directory' ).'/imgs/shortcodes/quote-2.jpg" /></p>';
        $output .='</div>';
    $output .='</div>';
于 2013-07-23T18:20:34.997 に答える