0

shrotcodes を使用して投稿から投稿メタを取得し、コンテンツに表示しようとしています。これは、これを実行しようとしているコードです。

$string = '';
$custom_content = get_post_custom($post->ID);

if( $my_query->have_posts() ) {
  while ($my_query->have_posts()) : $my_query->the_post(); 
      $content = get_the_content();
      $bonus = $custom_content["bonus"];

      $string .= $content . $bonus . '<br>'; 
  endwhile;
}
return $string;

カスタム コンテンツが空を返すため、機能していません。どうしたの?前もって感謝します

4

1 に答える 1

0

ショートコードのアイデアが思いつかなかったと思います。データベースからメタデータを取得するためにadd_shortcode()使用できる情報も読んでください。get_post_meta()

これを実現する方法の例を次に示しますが、これはメイン ループでのみ機能します (デフォルト)。

<?php
//you can put this code in functions.php or you can build a plugin for it
function metadata_in_content($attr) {
//this is the function that will be triggerd when the code finds the proper shortcode in the content; $attr is the parameter passed throw the shortcode (leave null for now)
    global $wpdb, $wp_query;
    //we need global $wpdb to query the database and to get the curent post info
    if (is_object($wp_query->post)) {
        $post_id = $wp_query->post->post_id;// here we save the post id
        $metadata = get_post_meta( $post_id, $key, $single ); // here we get the needed meta, make sure you place the correct $key here, also if you don't want to get an array as response pass $single as "true"
        return $metadata; // this finally replaces the shortcode with it's value
    }
}
add_shortcode('insert_metadata', 'metadata_in_content');
//the above code hooks the metadata_in_content function to the [insert_metadata] shortcode
?>

あとは投稿コンテンツに [insert_metadata] を配置するだけです。

于 2013-10-16T21:23:26.407 に答える