teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

ループの内容を追記、acfについて補足しました。

2016/07/31 18:37

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes

2

ループ内容を追記しました。

2016/07/31 18:36

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,25 @@
1
1
  wordpressで単語一覧ページを作成しているので、$query->setで$query->set( 'order', 'ASC' );にし、『A〜Z』までのアルファベット順で、Aで始まる単語は、Aのdivで囲うみたいなことをしたいのですが、どうしたらいいのか分からず、ご教授いただけますでしょうか。
2
2
 
3
+
4
+ ループ内のコードになります。
3
5
  ```ここに言語を入力
6
+ <div>
7
+ <?php
8
+ $oldheadkey = $headkey;
9
+ $headkey = mb_substr( get_the_title(), 0, 1, 'UTF-8' );
10
+ if ( $headkey !== $oldheadkey ) {
11
+ the_title();
12
+ }
13
+ ?>
14
+ </div>
15
+ ```
16
+
17
+ meta_keyのwordlistは、A〜Zまでのアルファベットをタイトルの頭文字と共通の単語を選択させています。
18
+
19
+ 例 タイトルの単語 Helloの場合
20
+ wordlistより、『H』を選択。
21
+
22
+ ```ここに言語を入力
4
23
  //function.php 投稿制御
5
24
  function change_posts_per_page($query) {
6
25
  /* 管理画面,メインクエリに干渉しないために必須 */

1

出力したいhtml及び、function内容を修正しました。

2016/07/31 18:35

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -8,10 +8,13 @@
8
8
  return;
9
9
  }
10
10
 
11
- /* works only */
11
+ /* word only */
12
- if ( $query->is_category('word') ) {
12
+ if ( $query->is_post_type_archive('word') ) {
13
13
  $query->set( 'posts_per_page', '-1' );
14
14
  $query->set( 'order', 'ASC' );
15
+ $query->set( 'orderby', 'meta_value' );
16
+ $query->set( 'meta_key', 'wordlist' );
17
+
15
18
  return;
16
19
  }
17
20
  ```
@@ -25,19 +28,21 @@
25
28
 
26
29
  表示は、以下のように、AとBでboxを分けて投稿を取得したいです。
27
30
 
28
- A
29
- ------------------------
31
+ 実現したいhtmlでの記述は以下になります。
30
- Aの単語1
31
- Aの単語2
32
- Aの単語3
33
- .
34
- .
35
32
 
33
+ <!-- Aの単語のボックス -->
34
+ <div>
35
+ <span>A</span>
36
+ <p>Aの単語1</p>
37
+ <p>Aの単語2</p>
38
+ <p>Aの単語3</p>
39
+ </div>
36
40
 
37
- B
41
+
38
- --------------------------
42
+ <!-- Bの単語のボックス -->
39
- Bの単語1
43
+ <div>
44
+ <span>B</span>
40
- Bの単語2
45
+ <p>Bの単語1</p>
46
+ <p>Bの単語2</p>
41
- Bの単語3
47
+ <p>Bの単語3</p>
42
- .
48
+ </div>
43
- .