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

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

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

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

PHP

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

Q&A

解決済

1回答

507閲覧

[wordpress]pods pageでの人気ランキングの表示

joe_tomo

総合スコア13

WordPress

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

PHP

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

0グッド

0クリップ

投稿2017/11/07 08:58

###前提・実現したいこと
podsで作成されたページの、人気ページのランキング表示をしたいです。

WPプラグイン「Podshttps://ja.wordpress.org/plugins/pods/」を使用しています。
podsでは、advanced content typeを使用し、
https://pods.io/docs/build/how-to-create-an-advanced-content-type/
pods pageで表示しています。
https://pods.io/docs/comparisons/compare-wp-pages-to-pod-pages/

podsで作成されたページの、人気ページのランキング表示をしたいです。

###発生している問題・エラーメッセージ

WordPress Popular Postsでの利用を考えておりましたが、
取得対象が、postかpageになってしまうため、記事の取得ができませんでした。

###試したコードは下記です。

<?php if (function_exists('wpp_get_mostpopular')) { $sidetest=pods('users', array( 'where' => "pods_field_name", )); $options = array( 'limit' => 5, // 表示件数の指定 'range' => 'monthly', // 集計期間 'daily', 'weekly', 'monthly', 'all' 'order_by' => 'views', // 集計の並び替え 'comments', 'views', 'avg' 'post_type' => 'page', // 集計対象指定 'wpp_start' => '<div class="side_rank_list"><ul>', 'wpp_end=' => '</ul></div>', 'post_html' => '<li><div class="list clearfix"><a href="https://xx/'.$sidetest->display("permalink").'" class="thmb"> <img src="'.$ctm.'" width="150" height="150" alt="" class="wpp-thumbnail wpp_def_noPath wpp_first_attachment"></a><div class="views">{view}</div><a href="https://xx'.$sidetest->display("permalink").'"><h4><strong>'.$sidetest->display( 'office' ).'<br></strong><div class="icon">'.$sidetest->display( 'shimei' ).'</div></h4></a></div></li>', ); wpp_get_mostpopular($options); } ?>

###現在試していること
プラグインなしでのランキング表示が必要かと思い、下記をコードを参照に試そうとしたのですが、
podsのフィールドにカウント数の追加方法がわからず、難航しています。

参考
『プラグインなし』で人気記事一覧を出力する方法
https://manablog.org/wordpress-popular-posts-without-plugin/

// 人気記事出力用 function getPostViews($postID){ $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); return "0 View"; } return $count.' Views'; } function setPostViews($postID) { $count_key = 'post_views_count'; $count = get_post_meta($postID, $count_key, true); if($count==''){ $count = 0; delete_post_meta($postID, $count_key); add_post_meta($postID, $count_key, '0'); }else{ $count++; update_post_meta($postID, $count_key, $count); } } remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);

どうかよろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

『プラグインなし』で人気記事一覧を出力する方法

query_postsは推奨されてないのでget_posts等を使った上で投稿タイプを指定する必要があります。

テンプレートタグ/get posts
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_posts

<?php // views post metaで記事のPV情報を取得する setPostViews(get_the_ID()); // ループ開始 $args = array( 'posts_per_page' => 5, 'orderby' => 'meta_value_num', 'order' => 'DESC', 'meta_key' => 'post_views_count', // 複数の投稿タイプが対象の場合 'post_type' => array( 'post', '投稿タイプ' ), // または任意の投稿タイプのみ対象の場合 'post_type' => '投稿タイプ', 'post_status' => 'publish', ); $posts = get_posts( $args ); foreach ( $posts as $post ): setup_postdata( $post ); ?> <!-- サムネイルの表示 --> <div class="col-sm-4 col-xs-4"> <a href="<?php echo get_permalink(); ?>"> <?php if ( has_post_thumbnail() ) { the_post_thumbnail( 'post-thumbnail' ); } ?> </a> </div> <!-- タイトルの表示 --> <div class="col-sm-8 col-xs-8"> <p> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> </p> </div> <?php endforeach; wp_reset_postdata();?>

投稿2017/11/09 03:53

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問