• 158158

    (@158158-1)


    似たような質問を検索し試しましたが、どうしても解決できないので質問させてください。

    カスタム投稿タイプで製品情報(タイプ:product)を作っています。
    その中から季節のおすすめ商品のタグ(recommended)のついたものを4件のみ、
    TOPに表示したいと考えています。
    表示したい内容は、
    ・サムネール画像
    ・タイトル(商品名になります)
    ・本文の抜粋

    過去の記事や検索で調べ、以下のようなコードを書きましたが
    サムネールとタイトルは表示されるのですが抜粋が表示できません。

    <h2>Recommendes<span>季節のおすすめ商品</span></h2>
    <?php $tax_posts = get_posts('post_type=products&taxonomy=products-cat&term=recommended&posts_per_page=4'); if($tax_posts): ?>
    	<div>
    	<?php foreach($tax_posts as $tax_post): ?>
    	<h3><a href="<?php echo get_permalink($tax_post->ID); ?>"><?php echo esc_html( $tax_post->post_title ); ?></a></h3>
    	<p><?php echo esc_html( $tax_post->post_excerpt ); ?></p>
    	<?php echo get_the_post_thumbnail($tax_post->ID, 'thumbnail'); ?>
    	<?php endforeach; ?>
    	</div>
    <?php endif; ?>

    どこがおかしいのか、間違いをご指摘いただけませんでしょうか?

    ちなみに、
    <?php echo esc_html( $tax_post->post_excerpt ); ?>
    部分を
    <?php echo $tax_post->post_content; ?>
    に変えると本文を含む記事全体が表示されますが、サムネールでない大きい画像や表なども表示されてしまいますので、本文の頭から何文字までの抜粋を表示したいのです。

    過去の記事で
    ja.forums.wordpress.org/topic/4823
    ja.forums.wordpress.org/topic/7145
    を参考にさせていただきました。
    特に後者の方は、非常に似通っている設定ですので参考にさせていただきましたが、
    表示できない部分が異なっており、私はサムネールの表示には問題なく抜粋分が表示されないのです。

    初心者なものでわかりにくい文章で大変申し訳ございませんが、何卒よろしくお願い致します。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • kurosquare

    (@kurosquare)

    カスタム投稿タイプを登録する時にregister_post_type()でsupportsにexcerptが登録されていない…なんていうことは?

    トピック投稿者 158158

    (@158158-1)

    レスありがとうございました。回答遅くなりまして申し訳ございません。
    excerptは登録しています。
    カスタム投稿タイプのカテゴリーとタクソノミーの全設定(function.php)は以下の通りです。

    add_action( 'init', 'create_post_type', 0 );
    function create_post_type() {
    	register_post_type( 'products',
    		array(
    			'labels' => array(
    			'name' => '商品情報',
    			'singular_name' => '商品情報一覧',
    			'add_new_item' => '新しい商品の追加',
    			),
    			'public' => true,
    			'publicly_queryable' => true,
    			'query_var' => true,
    			'exclude_from_search' => false,
    			'show_in_nav_menus' => true,
    			'menu_position' =>8,
    			'has_archive' => 'products/archive/',
    			'supports' => array('title','editor','excerpt','thumbnail','comments',)
    		)
    	);
    	register_taxonomy(
    		'products-cat',
    		'products',
    		array(
    			'hierarchical' =>true,
    			'update_count_callback' => '_update_post_term_count',
    			'label' => '商品情報カテゴリー',
    			'singular_label' => '商品情報カテゴリー',
    			'public' => true,
    			'show_ui' => true,
    			'menu-order' => true,
    		)
    	);
    }
    
    add_action( 'generate_rewrite_rules', 'my_rewrite' );
    function my_rewrite( $wp_rewrite ){
    	$taxonomies = get_taxonomies();
    	$taxonomies = array_slice($taxonomies,4,count($taxonomies)-1);
    	foreach ( $taxonomies as $taxonomy ) :
    		$post_types = get_taxonomy($taxonomy)->object_type;
    
    	foreach ($post_types as $post_type){
    		$new_rules[$post_type.'/'.$taxonomy.'/(.+?)/?$'] = 'index.php?taxonomy='.$taxonomy.'&term='.$wp_rewrite->preg_index(1);
    	}
    		$wp_rewrite->rules = array_merge($new_rules, $wp_rewrite->rules);
    	endforeach;
    }

    未だ解決に至らず困っております。
    よろしくお願い致します。

    pluto1234

    (@pluto1234)

    <?php foreach($tax_posts as $post): ?>
            <?php setup_postdata($post); ?>
    	<h3><a href="<?php echo get_permalink($post->ID); ?>"><?php echo esc_html( $post->post_title ); ?></a></h3>
    	<p><?php the_excerpt (); ?></p>
    	<?php echo get_the_post_thumbnail($post->ID, 'thumbnail'); ?>
    <?php endforeach; ?>
    <?php wp_reset_postdata();?>

    オブジェクトフィールドへの参照ではなく、全て the_***() のテンプレートタグにした方が統一性が合って良いかもしれません。

    トピック投稿者 158158

    (@158158-1)

    pluto1234様、ありがとうございました。
    お返事が遅くなりまして申し訳ございません。
    いただいたスクリプトを試してみましたが、解決できませんでした。
    サムネール画像と抜粋文の表示はあきらめて、
    post_contentで本文全てを抜き出し、imgの大きさをcssで変える等の
    工夫をしてみます。
    ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿本文の抜粋をTOPページに表示したい」には新たに返信することはできません。