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

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

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

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

PHP

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

Q&A

解決済

1回答

2293閲覧

Wordpressのカスタム投稿タイプ(+カスタムタクソノミーも)をプラグインに頼らず利用したい

cotton88

総合スコア87

WordPress

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

PHP

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

0グッド

0クリップ

投稿2016/04/27 22:09

編集2016/04/28 03:39

wordpressのカスタム投稿タイプ(+カスタムタクソノミーも)をプラグインに頼らず利用したいと思い、以下をfunction.phpに書きました。

ですが、カスタム投稿一覧・記事ページにて、カスタムタクソノミーの情報(カテゴリーやタグ)の情報が出てきません。
お知恵をお貸しください…。

php

1//function.phpに書いたコード 2// カスタム投稿タイプを作成する 3add_action('init', 'add_websites_post_type'); 4function add_websites_post_type() { 5 $params = array( 6 'labels' => array( 7 'name' => 'サイト', 8 'singular_name' => 'サイト', 9 'add_new' => '新規追加', 10 'add_new_item' => 'サイトを新規追加', 11 'edit_item' => 'サイトを編集する', 12 'new_item' => '新規サイト', 13 'all_items' => 'サイト一覧', 14 'view_item' => 'サイトの説明を見る', 15 'search_items' => '検索する', 16 'not_found' => 'サイトが見つかりませんでした。', 17 'not_found_in_trash' => 'ゴミ箱内にサイトが見つかりませんでした。' 18 ), 19 'menu_position' => 5, 20 'public' => true, 21 'has_archive' => true, 22 'exclude_from_search' => true, 23 'rewrite' => array( 24 'slug' => 'websites', 25 'with_front' => false 26 ), 27 'supports' => array( 28 'title', //(タイトル) 29 'editor', //(内容の編集) 30 'author', //(作成者) 31 'thumbnail', //(アイキャッチ画像。現在のテーマが post-thumbnails をサポートしていること) 32 'excerpt', //(抜粋) 33 'trackbacks', //(トラックバック送信) 34 'custom-fields', //(カスタムフィールド) 35 'comments', //(コメントの他、編集画面にコメント数のバルーンを表示する) 36 'revisions', //(リビジョンを保存する) 37 'page-attributes', //(メニューの順序。「親〜」オプションを表示するために hierarchical が true であること) 38 'post-formats', //(投稿のフォーマットを追加。投稿フォーマットを参照) 39 ), 40 'taxonomies' => array('websites_category','websites_tag') 41 ); 42 register_post_type('websites', $params); 43} 44// カスタム投稿タイプ(websites)用のカテゴリ&タグを作成する 45add_action('init', 'create_websites_taxonomies'); 46function create_websites_taxonomies() { 47 // カテゴリを作成 48 $labels = array( 49 'name' => 'Webカテゴリ', //複数系のときのカテゴリ名 50 'singular_name' => 'Webカテゴリ', //単数系のときのカテゴリ名 51 'search_items' => 'Webカテゴリを検索', 52 'all_items' => '全てのWebカテゴリ', 53 'parent_item' => '親カテゴリ', 54 'parent_item_colon' => '親カテゴリ:', 55 'edit_item' => 'Webカテゴリを編集', 56 'update_item' => 'Webカテゴリを更新', 57 'add_new_item' => '新規Webカテゴリを追加', 58 'new_item_name' => '新規Webカテゴリ', 59 'menu_name' => 'Webカテゴリ' //ダッシュボードのサイドバーメニュー名 60 ); 61 $args = array( 62 'hierarchical' => true, 63 'labels' => $labels, 64 'rewrite' => array( 'slug' => 'websites_cat' ) 65 ); 66 register_taxonomy( 'websites_category', 'websites', $args ); 67 68 // タグを作成 69 $labels = array( 70 'name' => 'Webタグ', //複数系のときのタグ名 71 'singular_name' => 'Webタグ', //単数系のときのタグ名 72 'search_items' => 'Webタグを検索', 73 'all_items' => '全てのWebタグ', 74 'parent_item' => null, 75 'parent_item_colon' => null, 76 'edit_item' => 'Webタグを編集', 77 'update_item' => 'Webタグを更新', 78 'add_new_item' => '新規Webタグを追加', 79 'new_item_name' => '新規Webタグ', 80 'separate_items_with_commas' => 'Webタグをコンマで区切る', 81 'add_or_remove_items' => 'Webタグを追加or削除する', 82 'choose_from_most_used' => 'よく使われているWebタグから選択', 83 'not_found' => 'アイテムは見つかりませんでした', 84 'menu_name' => 'Webタグ' //ダッシュボードのサイドバーメニュー名 85 ); 86 $args = array( 87 'hierarchical' => false, 88 'labels' => $labels, 89 'update_count_callback' => '_update_post_term_count', //タグの動作に必要なCallback設定 90 'rewrite' => array( 'slug' => 'websites_tag' ) 91 ); 92 93 register_taxonomy( 'websites_tag', 'websites', $args ); 94} 95

php

1//一覧ページなどに書いたコード 2<?php the_terms($post->ID,'websites'); ?>

追記-------------------------------------------
※テーマは、underscoreをカスタマイズして利用しています。

html

1//archive.php 2<?php 3get_header(); ?> 4 5 <div id="primary" class="content-area col-md-8"> 6 <main id="main" class="site-main" role="main"> 7 8 <?php 9 if ( have_posts() ) : ?> 10 11 <header class="page-header"> 12 <?php 13 the_archive_title( '<h1 class="page-title">', '</h1>' ); 14 the_archive_description( '<div class="taxonomy-description">', '</div>' ); 15 ?> 16 </header><!-- .page-header --> 17 18 <?php 19 /* Start the Loop */ 20 while ( have_posts() ) : the_post(); 21 22 /* 23 * Include the Post-Format-specific template for the content. 24 * If you want to override this in a child theme, then include a file 25 * called content-___.php (where ___ is the Post Format name) and that will be used instead. 26 */ 27 get_template_part( 'template-parts/content', get_post_format() ); 28 29 endwhile; 30 31 the_posts_navigation(); 32 33 else : 34 35 get_template_part( 'template-parts/content', 'none' ); 36 37 endif; ?> 38 39 </main><!-- #main --> 40 </div><!-- #primary --> 41 42<?php 43get_sidebar(); 44get_footer();

html

1//content.php 2<?php 3 4?> 5 6<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 7 <header class="entry-header"> 8 <?php 9 if ( is_single() ) { 10 the_title( '<h1 class="entry-title">', '</h1>' ); 11 } else { 12 the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' ); 13 } 14 15//これが出ない。 16wp_list_categories('title_li=&taxonomy=websites'); 17 18 if ( 'post' === get_post_type() ) : ?> 19 <div class="entry-meta"> 20 <?php hogehoge_posted_on(); ?> 21 </div><!-- .entry-meta --> 22 <?php 23 endif; ?> 24 </header><!-- .entry-header --> 25 26 <div class="entry-content"> 27 <?php 28 the_content( sprintf( 29 /* translators: %s: Name of current post. */ 30 wp_kses( __( 'Continue reading %s <span class="meta-nav">&rarr;</span>', 'hogehoge' ), array( 'span' => array( 'class' => array() ) ) ), 31 the_title( '<span class="screen-reader-text">"', '"</span>', false ) 32 ) ); 33 34 wp_link_pages( array( 35 'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'hogehoge' ), 36 'after' => '</div>', 37 ) ); 38 ?> 39 </div><!-- .entry-content --> 40 41 <footer class="entry-footer"> 42 <?php hogehoge_entry_footer(); ?> 43 </footer><!-- .entry-footer --> 44</article><!-- #post-## --> 45

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

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

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

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

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

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

kei344

2016/04/28 01:57

カスタムタクソノミーは管理画面では確認・登録できるのでしょうか。また、一覧ページのコードについて、ループの中の記述でしょうか。質問に追記いただければと思います。
cotton88

2016/04/28 03:40

ご質問ありがとうございます。 >カスタムタクソノミーは管理画面では確認・登録か 回答:はい、サイドメニューにも、投稿画面のカテゴリ・タグ選択項目が表示されております。 ループの件は追記させていただきました。
guest

回答1

0

ベストアンサー

こうでは?

PHP

1wp_list_categories('title_li=&taxonomy=websites_category,websites_tag');

投稿2016/04/28 03:49

kei344

総合スコア69364

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問