マジカルスリー・だいすけのなりゆき長者ブログ

沖縄/大阪WEB広告・ホームページ制作・印刷物制作 マジカルスリー 「福」代表のブログ

*

新着情報などでAll-in-One Event Calendarのカテゴリ名を表示する方法

      2016/09/22

ハマりました。

ドハマリしました。侮ってました。

「カテゴリ出力するだけでしょ。簡単簡単。」

侮りに足をすくわれるなんてこと、何回も経験してるのにね。

さて、前置きが長かったですが、今回のネタはかなり手がかりが見つかりませんでした。

おそらく全部合わせて丸一日以上かかっております。ありがたく読めよ!(上から目線)

まずせっかちな方のためにコードからご紹介。

※これで動きはしますが、結構おかしな事しています。「ここ変更したほうがいいよ。」と教えてくれる大先生募集中。

<dl>
<?php //カレンダーのポストタイプはai1ec_event
query_posts( Array( 'post_type' => array( 'post', 'ai1ec_event' ),
'orderby' => 'date',
'order' => 'DESC',
'paged' => get_query_var('paged')
)
);
if (have_posts()) : while (have_posts()) : the_post();
?>
<?php //カテゴリスラッグ取得
$cat = get_the_category(); $cat = $cat[0]; ?>
<dt><span class="<?php echo $cat->category_nicename; ?>"><?php the_category(', '); ?></span>
<span class="<?php //spanのclassに入れるためのリンク無しターム名(カレンダーのカテゴリ名)
$terms = get_the_terms( get_the_ID(), 'events_categories' ); if ( !empty($terms) ) : if ( !is_wp_error($terms) ) : ?>
<?php foreach( $terms as $term ) : ?>
<?php echo $term->name; ?>
<?php endforeach; ?>
<?php endif; endif; ?>">
<?php //リンク付きでターム名(カレンダーのカテゴリ名)を取得
echo get_the_term_list( $post->ID, 'events_categories' );
?></span></dt>
<dd><?php the_time('Y年n月j日'); ?>|<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></dd>
<?php endwhile; endif; wp_reset_query(); ?>
</dl>

(今回からGistというものを使ってコード表示しています。詳しくはこちら

重要なポイントは2つ。

その1 All-in-One Event Calendarはカスタム投稿を使っている。カスタム投稿タイプのスラッグはai1ec_event。

その2 カレンダーのカテゴリはタクソノミー扱い。通常のget_the_category()などでは取得できない。タクソノミーのスラッグはevents_categories(これを見つけるのに十数時間かかってる(泣))

タクソノミーとかタームについては下記のサイトがわかりやすいと思います。
[WordPress]投稿タイプ、タクソノミー、タームについて(KANTENA.COM様)

あーほんと、久々に苦しんだは。

参考文献のないプラグインって鬼畜だー。

今思えば、文献探すよりソース読んだほうが早かったかもしれない・・・。

 - WordPressの事

Message

  関連記事

ショートコードの出力結果が固定ページや投稿の上部に表示される

またもやWordPress覚書。もはやメモ帳代わり。 固定ページなどの途中でPH …

サイトに重大なエラーがありました。と出てきて顔面蒼白になる

WordPressを使っていると稀にこの事象に出くわします。 バックアップが運良 …

WordPressの管理画面が重くなったら(WPML使用サイト向け)

はっきりとした原因は不明なのですが、WPMLを入れていたWordpressサイト …

WordPressでよく使うコードまとめ

完全に自分用です。 View the code on Gist.  

WordPressで記事のカルーセルスライダー(jQuery的なスライドショー)

WordPressがそれなりにいじれると分かってから、嫁様の私への”こき使いっぷ …

マルチサイト引越し時の注意

マルチサイト引越の手順でひっかかったので忘備録。 引越し先のWordPressイ …

PHPでページの一部の文言だけを更新する方法

サイトのページの一部だけをブラウザから更新したい、だけどCMSとか入れるほどでも …

Redirectionプラグイン:REST APIの検索で止まる

久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …

「パスワードは、記号を含むか、20 文字以上でなければなりません。」で苦しんだ話

ワードプレスのユーザーを追加する際、パスワードを設定するんですが、ここでつまづい …

Limit Login Attempts Reloadedとしてヤツが帰ってきた件

かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …

S