WordPress初心者&PHP知識ほぼゼロ…..なので、ハマった期間は軽く3日超。涙
忘れないように、メモ書き!
1、通常の「投稿(post)」を利用して「キャバクラ各店舗ページ」
2、カスタム投稿タイプで「ドレスショップ(dressshop)」を作成
この二つを通常のカテゴリーを利用した「エリア=地域」でカテゴリー分け。
テンプレート「アーカイブ」を利用した各カテゴリー(各エリア)ページには、
上部に1、
下部に2、
を表示されるようにする。
つまり、カテゴリー「上野」のカテゴリーページの
上の段に「上野のキャバクラ一覧」※通常の投稿(post)
下の段に「上野のドレスショップ一覧」※カスタム投稿タイプ(dressshop)
この場合、
複数のループが必要になるらしい。
Magicalog | マジカルリミックスエンジニアブログ様の
WordPressで今見ているカテゴリーのIDを取得し、query_postsに代入(改) | Magicalog
を参考にさせて頂き、下記のように記述。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<p><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></p>
<?php endwhile; ?>
<!--カスタム投稿タイプshop一覧-->
<?
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$query = 'cat=' . $cat_id. '&showposts=1';
query_posts($query) ;
?>
<?php global $post; $myposts = get_posts("category=$cat_id&post_type=shop&order=asc&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php the_title(); ?></a></p>
<!--/カスタム投稿タイプshop一覧-->
<?php else : ?>
<p>キャバクラ店舗の登録がありません</p>
<!--直接応募店舗がない場合のカスタム投稿タイプshop一覧-->
<?
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$query = 'cat=' . $cat_id. '&showposts=1';
query_posts($query) ;
?>
<?php global $post; $myposts = get_posts("category=$cat_id&post_type=shop&order=asc&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<p><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php the_title(); ?></a></p>
<!--/直接応募店舗がない場合の紹介・派遣先店舗の一覧-->
<?php endif; ?>
狙い通りの表示に……と思いきや、なんか変。。
————
Magicalog | マジカルリミックスエンジニアブログ様の
WordPressで今見ているカテゴリーのIDを取得し、query_postsに代入(改) | Magicalog
<?
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$query = 'cat=' . $cat_id. '&showposts=1';
query_posts($query) ;
?>
<dl class="news">
<?php global $post; $myposts = get_posts("category=$cat_id&post_type=shop&order=asc&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<dt style="text-align:center;"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php echo post_custom("店舗名アルファベット"); ?></a></dt>
<dd><?php the_title(); ?>【<?php echo get_the_term_list($post->ID, 'type', '', '・'); ?>】</dd>
<?php endforeach; ?>
</dl>
ソースコード全体
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?><?php echo post_custom("店舗名アルファベット"); ?>(<?php echo post_custom("店舗名カナ"); ?>)</a></h2>
<div class="contents">
<p class="left"><img src="http://night-arcs.com/data/<?php echo post_custom("店舗コード"); ?>/top-pc.jpg" alt="<?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?><?php echo post_custom("店舗名アルファベット"); ?>(<?php echo post_custom("店舗名カナ"); ?>)店内画像トップ" width="234" height="176" /></p><p><br /><?php echo post_custom("テキスト1"); ?></p>
</div>
<?php endwhile; ?>
<!--カスタム投稿タイプshop一覧-->
<h2><?php single_cat_title(); ?>エリアの「紹介・派遣」先店舗の一覧</h2>
<div class="contents">
<?
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$query = 'cat=' . $cat_id. '&showposts=1';
query_posts($query) ;
?>
<dl class="news">
<?php global $post; $myposts = get_posts("category=$cat_id&post_type=shop&order=asc&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<dt style="text-align:center;"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php echo post_custom("店舗名アルファベット"); ?></a></dt>
<dd><?php the_title(); ?>【<?php echo get_the_term_list($post->ID, 'type', '', '・'); ?>】</dd>
<?php endforeach; ?>
</dl>
</div>
<!--/カスタム投稿タイプshop一覧-->
<?php posts_nav_link_keni(); ?>
<?php else : ?>
<h2>店舗がありません</h2>
<div class="contents">
<?php single_cat_title(); ?>エリアに直接応募出来る店舗はございません。
<p><?php printf( __('Back to <a href="%1$s">%2$s</a>','keni'), get_bloginfo('url'), get_bloginfo('name')); ?></p>
</div>
<!--直接応募店舗がない場合のカスタム投稿タイプshop一覧-->
<h2><?php single_cat_title(); ?>エリアの「紹介・派遣」先店舗の一覧</h2>
<div class="contents">
<?
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$query = 'cat=' . $cat_id. '&showposts=1';
query_posts($query) ;
?>
<dl class="news">
<?php global $post; $myposts = get_posts("category=$cat_id&post_type=shop&order=asc&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<dt style="text-align:center;"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php echo post_custom("店舗名アルファベット"); ?></a></dt>
<dd><?php the_title(); ?>【<?php echo get_the_term_list($post->ID, 'type', '', '・'); ?>】</dd>
<?php endforeach; ?>
</dl>
</div>
<!--/直接応募店舗がない場合の紹介・派遣先店舗の一覧-->
<?php endif; ?>
これだけおさえる ネットでバイト様の
ワードプレスで現在のカテゴリーページのIDを取得する方法
<?
$categoryname = single_cat_title('',false);
$categoryid = get_cat_ID($categoryname);
?>
これで、カテゴリー名⇒カテゴリーIDを取得して、
<?
$categoryname = single_cat_title('',false);
$categoryid = get_cat_ID($categoryname);
?>
<dl class="news">
<?php global $post; $myposts = get_posts("category=$categoryid&post_type=shop&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<dt style="text-align:center;"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php echo post_custom("店舗名アルファベット"); ?></a></dt>
<dd><?php the_title(); ?>【<?php echo get_the_term_list($post->ID, 'type', '', '・'); ?>】</dd>
<?php endforeach; ?>
</dl>
こうしたら上手くいきました!
全体のソースコード
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?><?php echo post_custom("店舗名アルファベット"); ?>(<?php echo post_custom("店舗名カナ"); ?>)</a></h2>
<div class="contents">
<p class="left"><img src="http://night-arcs.com/data/<?php echo post_custom("店舗コード"); ?>/top-pc.jpg" alt="<?php $cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } ?><?php echo post_custom("店舗名アルファベット"); ?>(<?php echo post_custom("店舗名カナ"); ?>)店内画像トップ" width="234" height="176" /></p><p><br /><?php echo post_custom("テキスト1"); ?></p>
</div>
<?php endwhile; ?>
<?php posts_nav_link_keni(); ?>
<!--カスタム投稿タイプshop一覧-->
<p><br /></p>
<h2><?php single_cat_title(); ?>エリアの「紹介・派遣」先店舗の一覧</h2>
<div class="contents">
<?
$categoryname = single_cat_title('',false);
$categoryid = get_cat_ID($categoryname);
?>
<dl class="news">
<?php global $post; $myposts = get_posts("category=$categoryid&post_type=shop&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<dt style="text-align:center;"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php echo post_custom("店舗名アルファベット"); ?></a></dt>
<dd><?php the_title(); ?>【<?php echo get_the_term_list($post->ID, 'type', '', '・'); ?>】</dd>
<?php endforeach; ?>
</dl>
</div>
<!--/カスタム投稿タイプshop一覧-->
<?php else : ?>
<h2>店舗がありません</h2>
<div class="contents">
<?php single_cat_title(); ?>エリアに直接応募出来る店舗はございません。
</div>
<!--カスタム投稿タイプshop一覧-->
<p><br /></p>
<h2><?php single_cat_title(); ?>エリアの「紹介・派遣」先店舗の一覧</h2>
<div class="contents">
<?
$categoryname = single_cat_title('',false);
$categoryid = get_cat_ID($categoryname);
?>
<dl class="news">
<?php global $post; $myposts = get_posts("category=$categoryid&post_type=shop&numberposts=40");
foreach($myposts as $post) : setup_postdata($post); ?>
<dt style="text-align:center;"><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ"><?php echo post_custom("店舗名アルファベット"); ?></a></dt>
<dd><?php the_title(); ?>【<?php echo get_the_term_list($post->ID, 'type', '', '・'); ?>】</dd>
<?php endforeach; ?>
</dl>
</div>
<!--/カスタム投稿タイプshop一覧-->
<?php endif; ?>
カテゴリー名やID、親カテゴリーIDなどの取得コード
※けどこの方法もこの記事のケースではダメでした
<?php
/* 現在のカテゴリ-の取得 */
$cat_now = get_the_category();
$cat_now = $cat_now[0];
/*親カテゴリーのID取得*/
$parent_id = $cat_now->category_parent;
/*現在のカテゴリーID/カテゴリー名取得*/
$now_id = $cat_now->cat_ID; /* カテゴリID */
$now_name = $cat_now->cat_name; /* カテゴリ名 */
?>
↑OpenMediaLaboratory Blog様の
WordPressでカテゴリID/カテゴリ名を取得する | OpenMediaLaboratory参考