質問編集履歴

1

コード追加

2018/01/23 07:12

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- wordpressでサイドバーに人気記事のランキングをウィジェットやプラグインを使わずに表示させたい
1
+ wordpressでサイドバーに人気記事のランキングをプラグインを使わずに表示させたい
test CHANGED
@@ -4,20 +4,204 @@
4
4
 
5
5
 
6
6
 
7
- のfunction.phpにウィジェットでランキングを表示させる用のコードがあり、それを使ってウィジェットに表示させてかなと思いコードsidebar.phpの中に貼り付けてみすが全然表示されませんでした。
7
+ 下記ようなコードを子テーマのfunction.phpに追記して、自分カスタマイズした人気記事のランキングを表示させるウィジェットを追加したいのですが記述のファイルアップしらサイト上何も表示されなくなってしいました。。。
8
-
9
-
10
-
8
+
9
+
10
+
11
- 「function.phpにコードを追してランキングを表示させる」という記事を何個も読みながら何回も試したのですが、うまくいせん
11
+ こちらの記事を参考に試してみたのですが、どこの記述が原因で表示されないのかがわからなて困っていまどなたかご教授お願い致します。
12
-
13
-
14
-
12
+
15
- せっかく既存の親のfunction.phpに使えそうな記述があるので、それを使って表示させたいと思っています。しかし、全くうまくいかず、どこを使ってどの記述を追加すればいいのかが全くわかりません.....
13
+ [https://plusers.net/wordpress_popular_posts](https://plusers.net/wordpress_popular_posts)
16
-
17
- どなたかぜひご教授お願い致します。
18
14
 
19
15
 
20
16
 
21
17
  使用している親テーマ:LION MEDIA
22
18
 
23
19
  [http://lionmedia.fit-jp.com/](http://lionmedia.fit-jp.com/)
20
+
21
+
22
+
23
+ ```ここに言語を入力
24
+
25
+ /* 人気記事一覧ウィジェット */
26
+
27
+ class Popular_Posts extends WP_Widget {
28
+
29
+ /*コンストラクタ*/
30
+
31
+ function __construct() {
32
+
33
+ parent::__construct(
34
+
35
+ 'popular_posts',
36
+
37
+ '人気記事 - myCustom',
38
+
39
+ array( 'description' => 'PV数の多い順で記事を表示 - myCustom' )
40
+
41
+ );
42
+
43
+ }
44
+
45
+ /*ウィジェット追加画面でのカスタマイズ欄の追加*/
46
+
47
+ function form($instance) {
48
+
49
+ ?>
50
+
51
+ <p>
52
+
53
+ <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('タイトル:'); ?></label>
54
+
55
+ <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>"
56
+
57
+ name="<?php echo $this->get_field_name('title'); ?>"
58
+
59
+ value="<?php echo esc_attr( $instance['title'] ); ?>">
60
+
61
+ </p>
62
+
63
+ <p>
64
+
65
+ <label for="<?php echo $this->get_field_id('number'); ?>"><?php _e('記事表示件数:'); ?></label>
66
+
67
+ <input type="text" id="<?php echo $this->get_field_id('limit'); ?>"
68
+
69
+ name="<?php echo $this->get_field_name('number'); ?>"
70
+
71
+ value="<?php echo esc_attr( $instance['number'] ); ?>" size="3">
72
+
73
+ </p>
74
+
75
+ <?php
76
+
77
+ }
78
+
79
+ /*カスタマイズ欄の入力内容が変更された場合の処理*/
80
+
81
+ function update($new_instance, $old_instance) {
82
+
83
+ $instance = $old_instance;
84
+
85
+ $instance['title'] = strip_tags($new_instance['title']);
86
+
87
+ $instance['number'] = is_numeric($new_instance['number']) ? $new_instance['number'] : 5;
88
+
89
+ return $instance;
90
+
91
+ }
92
+
93
+ /*ウィジェットのに出力される要素の設定*/
94
+
95
+ function widget($args, $instance) {
96
+
97
+ extract($args);
98
+
99
+ echo $before_widget;
100
+
101
+ if(!empty($instance['title'])) {
102
+
103
+ $title = apply_filters('widget_title', $instance['title'] );
104
+
105
+ }
106
+
107
+ if ($title) {
108
+
109
+ echo $before_title . $title . $after_title;
110
+
111
+ } else {
112
+
113
+ echo '<h4>人気記事</h4>';
114
+
115
+ }
116
+
117
+ $number = !empty($instance['number']) ? $instance['number'] : get_option('number');
118
+
119
+ ?>
120
+
121
+ <!--ここにウィジェットとして呼び出したい要素を記述-->
122
+
123
+ <aside class="sidekiji">
124
+
125
+ <ul>
126
+
127
+ <?php get_the_ID();//記事のPV情報を取得する
128
+
129
+ $args = array('meta_key'=> 'post_views_count',//投稿数をカウントするカスタムフィールド名
130
+
131
+ 'orderby' => 'meta_value_num',
132
+
133
+ 'order' => 'DESC',
134
+
135
+ 'posts_per_page' => $number
136
+
137
+ );
138
+
139
+ $my_query = new WP_Query( $args );?>
140
+
141
+ <?php while ( $my_query->have_posts() ) : $my_query->the_post(); $loopcounter++; ?>
142
+
143
+ <li>
144
+
145
+ <a href="<?php the_permalink(); ?>">
146
+
147
+ <!--順位-->
148
+
149
+ <span class="rank-count r-count<?php echo $loopcounter; ?>">
150
+
151
+ <?php echo $loopcounter; ?>
152
+
153
+ </span>
154
+
155
+ <!--サムネイル画像の追加-->
156
+
157
+ <?php if( has_post_thumbnail() ): ?>
158
+
159
+ <?php the_post_thumbnail('thumbnail'); ?>
160
+
161
+ <?php endif; ?>
162
+
163
+ <div class="sidekiji-text">
164
+
165
+ <?php the_title(); ?>
166
+
167
+ <br>
168
+
169
+ <!--タイトル-->
170
+
171
+ <?php the_title(); ?>
172
+
173
+ <!--カテゴリ-->
174
+
175
+ <span class="cat-data">
176
+
177
+ <?php if( has_category() ): ?>
178
+
179
+ <?php $postcat=get_the_category(); echo $postcat[0]->name; ?>
180
+
181
+ <?php endif; ?></span>
182
+
183
+ </div>
184
+
185
+ </a>
186
+
187
+ </li>
188
+
189
+ <?php endwhile; ?>
190
+
191
+ <?php wp_reset_postdata(); ?>
192
+
193
+ </ul>
194
+
195
+ </aside>
196
+
197
+ <!-- / ここにウィジェットとして呼び出したい要素を記述-->
198
+
199
+ <?php echo $after_widget;
200
+
201
+ }
202
+
203
+ }
204
+
205
+ register_widget('Popular_Posts');
206
+
207
+ ```