質問編集履歴
1
実際に使用したコードを追加し、説明も修正しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,41 +2,295 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```
|
10
|
+
|
11
|
+
mypage.php
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
<?php if (have_posts()) : ?>
|
16
|
+
|
17
|
+
<?php while (have_posts()) : the_post(); ?>
|
18
|
+
|
19
|
+
<?php if (get_post_meta($post->ID, 'block', true)) : ?>
|
20
|
+
|
21
|
+
<?php if (is_user_logged_in()) : ?>
|
22
|
+
|
23
|
+
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
|
24
|
+
|
25
|
+
<?php endif; ?>
|
26
|
+
|
27
|
+
<?php else : ?>
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
<!--管理者-->
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
<?php if ( current_user_can('administrator') ): ?>
|
36
|
+
|
37
|
+
<p>登録内容:<?php the_author_posts_link(); ?></p>
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
<?php endif; ?>
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
<!--投稿者-->
|
46
|
+
|
47
|
+
<?php if ( current_user_can('author') ): ?>
|
48
|
+
|
49
|
+
<p>登録内容:<?php the_author_posts_link(); ?></p>
|
50
|
+
|
51
|
+
<?php endif; ?>
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
<?php endif; ?>
|
58
|
+
|
59
|
+
<?php endwhile; ?>
|
60
|
+
|
61
|
+
<?php endif; ?>
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
コード
|
68
|
+
|
69
|
+
```
|
70
|
+
|
5
71
|
<?php the_author_posts_link(); ?>
|
6
72
|
|
7
|
-
で表示されるような作成者のページへのリンクをマイページというテンプレートで固定ページに表示し、
|
8
|
-
|
9
|
-
|
73
|
+
で表示されるような作成者のページへのリンクをマイページというテンプレートで固定ページに表示し、現在ログインしているユーザーの投稿(post)とカスタム投稿タイプ(****)の一覧を分けて表示したいと思っておりますが、上記のコードだと管理者(作成者)しか表示されないので、現在ログインしているユーザーのユーザー名を表示してそのユーザーの投稿の一覧(author.php)にリンクしたいと思っております。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
もちろん、マイページからもう一度リンクでauthorページへリンクしなくてもマイページに投稿のタイトルが表示できればいいことなのですが、わからないのでこうしていました。
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
authorページにカスタム投稿タイプを表示させるためのコードです
|
84
|
+
|
85
|
+
```
|
86
|
+
|
87
|
+
functions.php
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
//カスタム投稿を作成者ページに表示
|
94
|
+
|
95
|
+
function my_search_filter($query) {
|
96
|
+
|
97
|
+
if (is_author() && $query->is_main_query() ) {
|
98
|
+
|
99
|
+
$query->set( 'post_type', 'カスタム投稿タイプ' );
|
100
|
+
|
101
|
+
}
|
102
|
+
|
103
|
+
}
|
104
|
+
|
105
|
+
add_action( 'pre_get_posts','my_search_filter' );
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
```
|
110
|
+
|
111
|
+
|
10
112
|
|
11
113
|
|
12
114
|
|
13
115
|
イメージは
|
14
116
|
|
117
|
+
|
118
|
+
|
119
|
+
<h2>投稿者Bのカスタム投稿タイプの一覧</h2>
|
120
|
+
|
121
|
+
・カスタム投稿タイプの投稿1
|
122
|
+
|
123
|
+
・カスタム投稿タイプの投稿2
|
124
|
+
|
125
|
+
・カスタム投稿タイプの投稿3
|
126
|
+
|
127
|
+
|
128
|
+
|
15
129
|
<h2>投稿者Bの投稿の一覧</h2>
|
16
130
|
|
17
131
|
・投稿1
|
18
132
|
|
19
|
-
・投稿2
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
<h2>投稿者Bのカスタム投稿タイプの一覧</h2>
|
24
|
-
|
25
|
-
・カスタム投稿タイプの投稿1
|
26
|
-
|
27
|
-
・カスタム投稿タイプの投稿2
|
28
|
-
|
29
|
-
・カスタム投稿タイプの投稿3
|
30
|
-
|
31
133
|
|
32
134
|
|
33
135
|
という感じです。
|
34
136
|
|
137
|
+
・カスタム投稿タイプは複数の投稿があります
|
138
|
+
|
139
|
+
・投稿(post)は1つだけ
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
author.php
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
//カスタム投稿タイプの投稿の一覧表示
|
150
|
+
|
151
|
+
<?php if(have_posts()): ?>
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
<ul>
|
156
|
+
|
157
|
+
<?php while(have_posts()): the_post();?>
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
<?php endwhile;?>
|
172
|
+
|
173
|
+
</ul>
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
<?php else : ?>
|
180
|
+
|
181
|
+
投稿がありません。
|
182
|
+
|
183
|
+
<?php endif; ?>
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
//投稿(post)の表示
|
190
|
+
|
191
|
+
<?php $userId = get_query_var('author'); ?>
|
192
|
+
|
193
|
+
<?php $user = get_userdata($userId); ?>
|
194
|
+
|
195
|
+
<h3 style="margin-top:30px;">登録内容</h3>
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
<?php if (!empty($user->description)) { ?>
|
200
|
+
|
201
|
+
<p><?php echo $user->description; ?></p>
|
202
|
+
|
203
|
+
<?php } ?>
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
<?php $posts = get_posts("author=$userId&orderby=date&post_type=post&numberposts=1"); ?>
|
208
|
+
|
209
|
+
<?php if (!empty($posts)) { ?>
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
<?php foreach( $posts as $post ) : setup_postdata($post); ?>
|
214
|
+
|
215
|
+
登録日:<?php echo get_the_date("Y/n/j");?> <br />登録名:<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
|
216
|
+
|
217
|
+
<?php endforeach; ?>
|
218
|
+
|
219
|
+
<?php wp_reset_postdata(); ?>
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
<?php } ?>
|
224
|
+
|
225
|
+
コード
|
226
|
+
|
227
|
+
```
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
投稿を1つだけ表示させるコードは
|
232
|
+
|
233
|
+
https://engineer.blog.lancers.jp/2017/05/post_list_of_author/
|
234
|
+
|
235
|
+
こちらを参考に致しました。
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
ここまででは、現在ログインしているユーザーの投稿が取得できないので、
|
242
|
+
|
243
|
+
以下のコードを入れてみました。
|
244
|
+
|
35
245
|
|
36
246
|
|
37
247
|
https://teratail.com/questions/62292
|
38
248
|
|
39
|
-
こちらも参考にさせて頂きauthor.phpを書き換えてみました
|
249
|
+
こちらも参考にさせて頂きauthor.phpを書き換えてみました。
|
250
|
+
|
251
|
+
```
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
<?php $author_id = $curauth->ID; ?><!--現在の投稿者ID を変数に代入-->
|
256
|
+
|
257
|
+
<?php query_posts('author='.$author_id.'&showposts=20&post_type=column');?>
|
258
|
+
|
259
|
+
<?php if ( have_posts() ): while ( have_posts() ): the_post(); ?>
|
260
|
+
|
261
|
+
<!– Start: Post –>
|
262
|
+
|
263
|
+
<div>
|
264
|
+
|
265
|
+
<h3>“><?php the_title(); ?></h3>
|
266
|
+
|
267
|
+
<p>
|
268
|
+
|
269
|
+
<span><?php the_time(‘Y年m月d日’); ?></span>
|
270
|
+
|
271
|
+
<span><?php the_author(); ?></span>
|
272
|
+
|
273
|
+
</p>
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
</div>
|
278
|
+
|
279
|
+
<!– End: Post –>
|
280
|
+
|
281
|
+
<?php endwhile; endif; ?>
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
コード
|
288
|
+
|
289
|
+
```
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
こちらのコードですと、
|
40
294
|
|
41
295
|
管理者A
|
42
296
|
|
@@ -52,4 +306,8 @@
|
|
52
306
|
|
53
307
|
|
54
308
|
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
|
55
|
-
よろしくお願いします。
|
313
|
+
お手数ですがよろしくお願いします。
|