質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

1440閲覧

Wordpressテーマ TCDシリーズのテンプレート「EVERY」をカスタマイズして使用しています。 「レシピ」をランダム表示させるにはどうしたらよいのでしょうか?

nuts

総合スコア13

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/04/24 11:41

WordPressの専門的知識が浅く、またphpの知識もあまりないので、ご教授いただきたいです。

テンプレート「taxonomy-recipe_category.php」で記事(投稿?)の一覧を表示させているようなのですが、
記事(投稿?)をランダム表示させるには、どのようにカスタマイズしたらよいでしょうか?

下記のphpソースがtaxonomy-recipe_category.phpの中身です。

このような情報の提示だけでご教授いただけるのかどうかも分からない状態なのですが
お助けいただければ幸いです。

よろしくお願いいたします。

php

1<?php 2 get_header(); 3 $options = get_design_plus_option(); 4 $query_obj = get_queried_object(); 5 $cat_id = $query_obj->term_id; 6 $post_count = $query_obj->count; 7 $parent_cat_id = $query_obj->parent; 8 if($parent_cat_id == 0){ // parent category page 9 $category_name = single_cat_title('', false); 10 $term_meta = get_option( 'taxonomy_' . $cat_id, array() ); 11 $desc = ""; 12 if (!empty($term_meta['desc'])){ 13 $desc = $term_meta['desc']; 14 } 15 } else { // child category page 16 $parent_category_data = get_term_by('id', $parent_cat_id, 'recipe_category'); 17 $category_name = $parent_category_data->name; 18 $child_category_term_meta = get_option( 'taxonomy_' . $cat_id, array() ); 19 $term_meta = get_option( 'taxonomy_' . $parent_cat_id, array() ); 20 $desc = ""; 21 if (!empty($child_category_term_meta['desc'])){ 22 $desc = $child_category_term_meta['desc']; 23 } 24 } 25 $category_color = "#009fe1"; 26 if (!empty($term_meta['main_color'])){ 27 $category_color = $term_meta['main_color']; 28 } 29 $image_id = $options['recipe_bg_image']; 30 if(!empty($image_id)) { 31 $image = wp_get_attachment_image_src($image_id, 'full'); 32 } 33 $use_overlay = $options['recipe_use_overlay']; 34 if($use_overlay) { 35 $overlay_color = hex2rgb($options['recipe_overlay_color']); 36 $overlay_color = implode(",",$overlay_color); 37 $overlay_opacity = $options['recipe_overlay_opacity']; 38 } 39 // overwrite the data if category data exist 40 if (!empty($term_meta['image'])){ 41 $image = wp_get_attachment_image_src( $term_meta['image'], 'full' ); 42 } 43 if (!empty($term_meta['use_overlay'])){ 44 if (!empty($term_meta['overlay_color'])){ 45 $overlay_color = hex2rgb($term_meta['overlay_color']); 46 $overlay_color = implode(",",$overlay_color); 47 if (!empty($term_meta['overlay_opacity'])){ 48 $overlay_opacity = $term_meta['overlay_opacity']; 49 } else { 50 $overlay_opacity = '0.3'; 51 } 52 } 53 } 54?> 55<?php get_template_part('template-parts/breadcrumb'); ?> 56 57<div id="main_contents" class="clearfix"> 58 59 <div id="main_col" class="clearfix"> 60 61 <?php 62 if($parent_cat_id == 0){ // parent category page 63 if(!is_paged()) { 64 ?> 65 <div id="page_header" <?php if($image_id) { ?>style="background:url(<?php echo esc_attr($image[0]); ?>) no-repeat center center; background-size:cover;"<?php }; ?>> 66 <?php if($category_name){ ?><h2 class="headline rich_font" style="background:<?php echo esc_attr($category_color); ?>;"><span><?php echo wp_kses_post(nl2br($category_name)); ?></span></h2><?php }; ?> 67 <?php if($desc){ ?><p class="desc"><?php echo wp_kses_post(nl2br($desc)); ?></p><?php }; ?> 68 <?php if($use_overlay) { ?><div class="overlay" style="background: -webkit-linear-gradient(top, transparent 50%, rgba(<?php echo esc_html($overlay_color); ?>,<?php echo esc_html($overlay_opacity); ?>) 100%); background: linear-gradient(to bottom, transparent 50%, rgba(<?php echo esc_html($overlay_color); ?>,<?php echo esc_html($overlay_opacity); ?>) 100%);"></div><?php }; ?> 69 </div> 70 <?php 71 }; 72 }; 73 ?> 74 75 <div id="recipe_categry"> 76 77 <?php 78 if($parent_cat_id == 0){ // parent category page 79 if(!is_paged()) { 80 $recipe_category = get_terms( 'recipe_category', array( 'hide_empty' => true, 'orderby' => 'id', 'parent' => $cat_id ) ); 81 if ( $recipe_category && ! is_wp_error( $recipe_category ) ) : 82 ?> 83 <div id="recipe_child_category_list_wrap_fix"> 84 <div id="recipe_child_category_list_wrap"> 85 <ol id="recipe_child_category_list" class="clearfix"> 86 <?php 87 foreach ( $recipe_category as $child_cat ): 88 $child_cat_id = $child_cat->term_id; 89 ?> 90 <li><a href="<?php echo esc_url(get_term_link($child_cat_id,'recipe_category')); ?>"><?php echo esc_html($child_cat->name); ?></a></li> 91 <?php endforeach; ?> 92 </ol> 93 </div> 94 </div> 95 <?php endif; }; ?> 96 97 <div id="archive_headline" class="clearfix"> 98 <p class="category rich_font" style="background:<?php echo esc_attr($category_color); ?>;"><?php echo esc_html($category_name); ?></p> 99 <?php printf(__('<h2 class="title rich_font">%s %s</h2>', 'tcd-w'),$category_name,$options['category_recipe_headline_label']); ?> 100 <?php if($options['show_category_recipe_post_count']) { ?><p class="post_count"><?php echo number_format($post_count) . esc_html($options['category_recipe_post_count_label']); ?></p><?php }; ?> 101 </div> 102 103 <?php } else { // child category page ?> 104 105 <div id="archive_headline" class="clearfix"> 106 <p class="category rich_font" style="background:<?php echo esc_attr($category_color); ?>;"><?php echo esc_html($category_name); ?></p> 107 <h2 class="title rich_font"><?php echo esc_html(single_cat_title('', false)); ?></h2> 108 <?php if($options['show_category_recipe_post_count']) { ?><p class="post_count"><?php echo number_format($post_count) . esc_html($options['category_recipe_post_count_label']); ?></p><?php }; ?> 109 </div> 110 111 <?php if($desc){ ?><p class="child_category_desc"><?php echo wp_kses_post(nl2br($desc)); ?></p><?php }; ?> 112 113 <?php }; ?> 114 115 <?php if ( have_posts() ) : ?> 116 117 <div class="recipe_list type2 clearfix"> 118 <?php 119 while ( have_posts() ) : the_post(); 120 $recipe_type = get_post_meta($post->ID, 'recipe_type', true); 121 $premium_recipe = get_post_meta($post->ID,'premium_recipe',true); 122 if(has_post_thumbnail()) { 123 $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'size1' ); 124 } elseif($options['no_image2']) { 125 $image = wp_get_attachment_image_src( $options['no_image2'], 'full' ); 126 } else { 127 $image = array(); 128 $image[0] = esc_url(get_bloginfo('template_url')) . "/img/common/no_image2.gif"; 129 } 130 ?> 131 <article class="item<?php if(!is_user_logged_in() && $premium_recipe) { echo ' register_link'; }; ?>"> 132 <a class="link animate_background" href="<?php if(!is_user_logged_in() && $premium_recipe) { echo '#'; } else { the_permalink(); }; ?>"> 133 <div class="image_wrap"> 134 <?php if($premium_recipe && $options['category_recipe_list_show_premium_icon']) { ?><div class="premium_icon"></div><?php }; ?> 135 <div class="image" style="background:url(<?php echo esc_attr($image[0]); ?>) no-repeat center center; background-size:cover;"></div> 136 </div> 137 </a> 138 <div class="title_area"> 139 <h3 class="title"><a href="<?php if(!is_user_logged_in() && $premium_recipe) { echo '#'; } else { the_permalink(); }; ?>"><span><?php the_title(); ?></span></a></h3> 140 <?php 141 if($parent_cat_id == 0){ // parent category page 142 $args = array( 'orderby' => 'term_order' ); 143 $recipe_child_category = wp_get_post_terms( $post->ID, 'recipe_category' ,$args); 144 if ($recipe_child_category && $options['category_recipe_list_show_category']) { 145 ?> 146 <p class="post_meta"> 147 <?php 148 foreach ( $recipe_child_category as $child_cat ) : 149 if($child_cat->parent != 0) { 150 $child_cat_name = $child_cat->name; 151 $child_cat_id = $child_cat->term_id; 152 ?> 153 <a href="<?php echo esc_url(get_term_link($child_cat_id,'recipe_category')); ?>"><?php echo esc_html($child_cat_name); ?></a> 154 <?php 155 break; 156 } 157 endforeach; 158 ?> 159 </p> 160 <?php 161 }; 162 } else { // child category page 163 if($options['category_recipe_list_show_post_view']) { 164 ?> 165 <p class="post_meta"><?php if($recipe_type != 'type2') { _e('Hits:', 'tcd-w'); } else { _e('Views:', 'tcd-w'); }; ?><?php the_post_views(); ?></p> 166 <?php 167 }; 168 }; 169 ?> 170 </div> 171 </article> 172 <?php endwhile; ?> 173 </div><!-- END .recipe_list1 --> 174 175 <?php get_template_part('template-parts/navigation'); ?> 176 177 <?php else: ?> 178 179 <p id="no_post"><?php _e('There is no registered post.', 'tcd-w'); ?></p> 180 181 <?php endif; ?> 182 183 </div><!-- END recipe_archive --> 184 185 </div><!-- END #main_col --> 186 187 <?php get_sidebar(); ?> 188 189</div><!-- END #main_contents --> 190 191<?php get_footer(); ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nuts

2020/04/25 02:24

以下のことを試して見たのですが、ランダム表示されませんでした。 (試したこと その1) 80行目の 'orderby' => 'id', を 'orderby' => 'rand', にしてみました (試したこと その2) 142行目の $args = array( 'orderby' => 'term_order' ); を $args = array( 'orderby' => 'rand' ); にしてみました (試したこと その3) 115行目の <?php if ( have_posts() ) : ?> の前に <?php query_posts('orderby=rand');?> と追記してみました どのように記述すれば、ランダム表示されますでしょうか? ご教授いただければ幸いです。 よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問