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

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

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

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

PHP

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

受付中

カスタム投稿タイプで「いま表示中のページのカテゴリID」を取得するためには?

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

PHP

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

1回答

0リアクション

0クリップ

3073閲覧

投稿2016/10/13 18:47

###■目的
WP-PostViewsというプラグインを使って、「現在表示中の記事のカテゴリ内の、人気記事」を表示したいです。(ただしカスタム投稿タイプになります。)

###■現状
下記のように書いているのですが、h3タグの部分しか表示されません。

single-example.php

php

<!-- 関連記事ランキング表示 --> <div class="wp-postviews"> <h3>関連記事</h3> <ol> <?php //現在のカテゴリIDを配列で取得 $now_id = get_queried_object_id($post->ID,'fields=ids');?> </ol> <?php global $post; $args = array( 'post_type' => $now_id, 'posts_per_page' => 5, 'terms_in' => $now_id, 'meta_key' => 'views', 'orderby' => 'meta_value_num' ); $posts = get_posts( $args ); foreach( $posts as $post ) { setup_postdata($post); ?> <li><?php the_post_thumbnail( array(100, 100), array('alt'=>get_the_title()) ); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php } wp_reset_postdata(); ?> </div>

###■質問
①カテゴリIDを取得する部分↓が間違っているのかなって思います。
get_queried_object_id($post->ID,'fields=ids');
現状はこう書いておりますけれど、違うようです。
どうすれば、カスタム投稿タイプで「いま表示中のページのカテゴリID」を取得できるのでしょうか?

②それとも別のところでしょうか?

以上です。①か②か、お分かりになる方、よろしくお願いいたします。m(__)m

###■ちなみに
これはあっていると思いますが念のため。
functions.phpではこのように書いてカスタム投稿タイプにカテゴリを設定しています。

php

// カスタム投稿タイプの追加 add_action( 'init', 'custum_post_type' ); function custum_post_type() { //test1の投稿タイプ追加 register_post_type( 'test1', array('labels' => array( 'name' => __( 'test1' ), 'singular_name' => __( 'test1' ) ), //投稿タイプの設定 'public' => true, 'menu_position' => 5, 'hierarchicla' => false, 'has_archive' => true, //パーマリンクを /test1/投稿名/ にします。 'rewrite' => array( 'slug' => 'wp-test1' ), //投稿編集ページの設定 'supports' => array('title','editor','thumbnail', //タイトル,編集,アイキャッチ 'custom-fields','excerpt','author','trackbacks', //カスタムフィールド,抜粋文&作成者,トラックバック 'comments','revisions','page-attributes') //コメント,リビジョン,作成者,表示順のボックス ) ); //test1のカテゴリー追加 register_taxonomy( 'test1-category', /* タクソノミーのslug */ 'test1', /* 属する投稿タイプ */ array( 'hierarchical' => true, 'update_count_callback' => '_update_post_term_count', 'label' => 'カテゴリー', 'singular_label' => 'カテゴリー', 'public' => true, 'show_ui' => true ) ); }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

WordPress

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

PHP

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