前提・実現したいこと
wordpressにて複数のユーザーが記事を投稿できる飲食店ポータルサイトを制作しています。
サイトの仕様は以下です。
・カスタム投稿タイプで各店舗のページを作成、店舗情報や「ブログ」として各店舗の担当者が投稿した記事を表示させています。店舗Aのページには、店舗Aの担当者が投稿した記事のみを表示しています。
・wordpressのユーザー機能を使用して、店舗の担当者を登録しています。ユーザー権限は「投稿者」で記事の投稿・修正のみができるようになっています。ユーザーの新規追加時に、該当する店舗のカスタム投稿ページと紐づけるプルダウンをACFにて追加しました。
・投稿記事は「store_blog」というスラッグ名のカテゴリで分類されています。
・トップページに全ての店舗のブログ記事一覧を以下のコードで表示しています。
<div class="grid"> <?php $cat_posts = get_posts(array( 'post_type' => 'post', 'category_name' => 'store_blog', 'posts_per_page' => 6, 'orderby' => 'date', 'order' => 'DESC' )); global $post; if($cat_posts): foreach($cat_posts as $post): setup_postdata($post); ?> <div class="item blue w2 h2" data-color="blue" data-title="peach"> <div class="item-content"> <!-- Safe zone, enter your custom markup --> <div class="custom-content"> <p> <a href="<?php the_permalink(); ?>"> <img src="<?php echo catch_first_image(); ?>" alt="<?php the_title(); ?>" /> </a> </p> <h3><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3> <p><?php the_time('Y.m.d') ?></p> <p> <a href="<?php the_permalink(); ?>"> <?php if(mb_strlen($post->post_content,'UTF-8')>40){ $content= str_replace('\n', '', mb_substr(strip_tags($post-> post_content), 0, 40,'UTF-8')); echo $content.'...'; }else{ echo str_replace('\n', '', strip_tags($post->post_content)); } ?> </a> </p> </div> <!-- Safe zone ends --> </div> </div> <?php endforeach; endif; wp_reset_postdata(); ?> </div><!-- .grid -->
・記事ごとにジャンルで色分けをしたいと考えています。そこで、ターム名をスラッグで取得し、class名として付与したいのですが、どのように取得して良いのかが分からず質問させていただきました。
試したこと
「ユーザープロフィールページで紐づいているカスタム投稿ページのタイトル名を取得→そのページのジャンルタームを取得する」というような流れでスラッグを取得できないかと考えたのですが、具体的にどのようにコード化したら良いのかわかりませんでした。
また、他にもっと良い案があればお教え願います!!
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。