1

カスタムショートコードを作成し、出力する情報を取得できますが、コンテンツ階層のどこに配置したかは表示されません。常に投稿/ページの上部に印刷されます。なぜこれが起こっているのかについての手がかりはありますか?

私のfunctions.phpで:

function sc_pdf($atts, $content = null) {
   $pdfname = the_field('pdf_title');
   $pdfimage = the_field('pdf_file');
   $pdflink = the_field('pdf_thumbnail');
   return '<p>'.$pdfname.'</p><p>'.$pdfimage.'</p><p>'.$pdflink.'</p>';
}
add_shortcode("peedeef", "sc_pdf");
4

3 に答える 3

3

the_field メソッドを使用しているため、ACF プラグインを使用していると仮定します。

指定したフィールドを出力するため、get_field代わりに使用する必要があります。the_fieldthe_field

function sc_pdf($atts, $content = null) {
   $pdfname = get_field('pdf_title');
   ... etc
于 2012-04-17T10:01:07.783 に答える
2

ショートコードを移動するには、echo を使用しないでください。 最初の例でドキュメントにショートコードを配置すると、常に一番上に浮きます。2番目に下に配置すると、下に表示されます。

私のショートコードは [showpod] です

どこにも配置できないコード

function makepod($atts) {
echo "<div class='podmysqlarray2 showpodholder'><h3 class='widget-title newposts'>Latest Snippets</h3>";
$args = array( 'numberposts' => '6' );
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
echo '<div class="pod"><li><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> </div>';
}
echo "</div>";
}
add_shortcode('showpod', 'makepod');

そして今、あなたはどこにでも置くことができる改訂されたコード: -

function makepod($atts) {
$cat = "<div class='podmysqlarray2 showpodholder'><h3 class='widget-title newposts'>Latest Snippets</h3>";
$args = array( 'numberposts' => '6' );
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
$cat.= '<div class="pod"><li><a href="' . get_permalink($recent["ID"]) . '" title="Look '.esc_attr($recent["post_title"]).'" >' .   $recent["post_title"].'</a> </li> </div>';
}
$cat .= "</div>";
return $cat;
}
add_shortcode('showpod', 'makepod');
于 2013-10-07T12:36:14.337 に答える
2

echo の代わりに常に "return" を使用してください。

適切な場所でデータを取得できます。

于 2015-02-25T10:18:16.083 に答える