• いつもお世話になっております。
    同様の質問が見つからなかったので、ご質問させていただきます。

    カスタム投稿タイプにてCustom Field Templateプラグインを使用した、カスタムフィールドテンプレートを使用しています。

    新規追加で編集画面に入った状態では「プレビュー」ボタンが表示されますが、
    カスタムフィールドに値を入力した瞬間に「プレビュー」ボタンが非表示になります。
    また、すでに投稿されている記事を再編集する場合は、「変更をプレビュー」が表示されていますが、
    カスタムフィールドの値を変更して「変更をプレビュー」を押すとカスタムフィールドは反映されていません。
    (もともとカスタムフィールドに入っている値さえも表示されません)

    カスタムフィールドの入力の仕方が悪いのか、
    カスタム投稿タイプが悪いのか、
    どこが悪いのかさえわからないので、知恵をお貸し頂けますようお願いします。

    以下コードです。

    function.php

    /* カスタム投稿タイプでブックストアを追加 */
    register_post_type( 'book',
    	array(
    		'label' => 'ブックストア',
    		'hierarchical' => false,
    		'public' => true,
    		'query_var' => false,
    		'menu_position' => 5,
    		'has_archive' => true,
    		'supports' => array('title','editor','author')
    	)
    );
    register_taxonomy( 'book_cat', 'book',
    	array(
    		'label' => 'カテゴリー',
    		'hierarchical' => true,
    		'rewrite' => true
    	)
    );
    function manage_book_columns($columns) {
    	$columns['book_category'] = "カテゴリー";
    	return $columns;
    }
    function add_book_column($column_name, $post_id){
    	if( $column_name == 'book_category' ) {
    		if( 'book_category' == $column_name ) {
    			$book_category = get_the_term_list($post_id, 'book_cat', '', ', ', '' );
    		}
    		if ( isset($book_category) && $book_category ) {
    			echo $book_category;
    		} else {
    			echo __('None');
    		}
    	}
    }
    add_filter('manage_edit-book_columns', 'manage_book_columns');
    add_action('manage_posts_custom_column',  'add_book_column', 10, 2);

    single-book.php

    <div class="entry-content">
      <div class="itempic">
        <?php if(get_post_meta($post->ID, '画像', true)): ?>
          <img src="<?php $image = wp_get_attachment_image_src(get_post_meta($post->ID,"画像",true), 'small'); echo $image[0]; ?>" alt="<?php the_title(); ?>" />
        <?php else: ?>
          <img src="<?php bloginfo('template_url'); ?>/images/noimage200.gif" alt="noimage" />
        <?php endif; ?>
      </div><!-- /.itempic -->
      <table cellpadding="0" cellspacing="0" border="0" class="itemtable">
        <tbody>
          <tr>
            <th>値段</th>
            <td>
              <?php if(get_post_meta($post->ID, "値段", true)): ?>
                <?php echo get_post_meta($post->ID, "値段", true); ?>
              <?php else: ?>
                完売しました
              <?php endif; ?>
            </td>
          </tr>
          <?php
            //DBからデータ取得
            //$wpdb->postmeta カスタムフィールドのキーと値が保存されているテーブル
            global $wpdb;
            $query = "SELECT meta_id,post_id,meta_key,meta_value FROM $wpdb->postmeta WHERE post_id = $post->ID ORDER BY meta_id ASC";
            $cf = $wpdb->get_results($query, ARRAY_A);
            $item = array();
            $cont = array();
            foreach( $cf as $row ){
              if( $row['meta_key'] == "項目名" ){
                array_push( $item, $row['meta_value'] );
              }
              if( $row['meta_key'] == "内容" ){
                array_push( $cont, $row['meta_value'] );
              }
            }
            $length = count( $item );
            //表示
            if(get_post_meta($post->ID, "項目名", true)):
              for( $i = 0; $i < $length; $i ++ ){
                echo '<tr><th>' . $item[$i] . '</th>';
                echo '<td>' . $cont[$i] . '</td></tr>';
              }
            else:
          endif; ?>
        </tbody>
      </table>
      <div class="itemdiscription"><?php the_content(); ?></div>
    </div><!-- .entry-content -->

    以上、よろしくお願い致します。

  • トピック「カスタムフィールドをカスタム投稿タイプでプレビュー」には新たに返信することはできません。