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

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

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

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

Q&A

解決済

2回答

5469閲覧

Wordpress カスタム投稿のページャーの前の記事へと次の記事へのリンクが付きません。

jjzoow96

総合スコア40

WordPress

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

0グッド

1クリップ

投稿2016/07/12 04:26

カスタム投稿とそのタクソノミーを使いシングルPHPを作成しています。

ページャーの前の記事へと次の記事へのリンクが付きません。どなたかお助けください。

パーマリンクの設定は/%blog_1(カテゴリー・ターム名)%/%post_id%

試したこと
・next_posts_link();を試しました。
・next_post_link();を試しました。
・Plugin Ambrosite Next/Previous Post Link Plusを試しました。

/* functions.php カスタム投稿とタクソノミーの設定 */

php

1//ブログカスタム投稿 2 add_action('init', 'my_technic_init2'); 3function my_technic_init2() 4{ 5 $labels = array( 6 'name' => _x('ブログ', 'post type general name'), 7 'singular_name' => _x('ブログ', 'post type singular name'), 8 'add_new' => _x('新規作成', 'works'), 9 'add_new_item' => __('ブログを書く'), 10 'edit_item' => __('ブログを編集'), 11 'new_item' => __('新しいブログ'), 12 'view_item' => __('ブログを見てみる'), 13 'search_items' => __('ブログを探す'), 14 'not_found' => __('ブログはありません'), 15 'not_found_in_trash' => __('ゴミ箱にブログはありません'), 16 'parent_item_colon' => '' 17 ); 18 $args = array( 19 'labels' => $labels, 20 'public' => true, 21 'publicly_queryable' => true, 22 'show_ui' => true, 23 'query_var' => true, 24 'rewrite' => true, 25 'capability_type' => 'post', 26 'hierarchical' => false, 27 'menu_position' => 5, 28 'supports' => array('title','editor','thumbnail','custom-fields','excerpt','revisions','page-attributes','comments'), 29 'has_archive' => true 30 ); 31 register_post_type('blog',$args); 32 //ここが原因かも? 33 // flush_rewrite_rules( false ); 34 35 //カテゴリータイプ 36 $args = array( 37 'label' => 'ブログカテゴリー', 38 'public' => true, 39 'show_ui' => true, 40 'query_var' => true, 41 'hierarchical' => true, 42 'rewrite' => true, 43 ); 44 register_taxonomy('blog_1','blog', $args); 45 } 46

/* single-blog.php カスタム投稿のブロクのシングル */

php

1<article id="blog_sing_article" class="site-content"> 2 3 <?php if(have_posts()) : while(have_posts()) : the_post(); ?> 4 5 <ul id="blog_date_ul"> 6 <li class="blog_single_date" itemprop="datePublished" datetime="<?php the_time('c');?>"> 7 <i class="fa fa-clock-o" aria-hidden="true"></i> 8 <?php the_time('Y/m/d');?> 9 </li> 10<?php 11//特定記事のタクソノミー取得 12$terms = get_the_terms($post->ID, 'blog_1'); 13if ($terms): 14foreach ($terms as $value): 15?> 16 <li class="blog_single_category"><?php echo $value->name; ?></li> 17<?php endforeach; endif;?> 18 </ul> 19 20 <div id="blog_post"> 21 22 <?php the_content(); ?> 23 24 </div> 25 26 27 <?php endwhile; ?> 28 29 30 <div class="nav-below"> 31 <span class="nav-previous"><?php next_posts_link('前の記事へ') ?></span> 32 <span class="nav-next"><?php previous_posts_link('次の記事へ') ?></span> 33 </div><!-- /.nav-below --> 34 35 36 <?php endif; ?> 37<?php wp_reset_query(); ?> 38</article>

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

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

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

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

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

guest

回答2

0

自己解決

functions.phpに以下の関数を書きsingle-blog.php(カスタム投稿)で読込、ナビゲーション機能を実装しました。

php

1//カスタム投稿個別ページの次の記事と現在の記事と前の記事を連想配列で取得 2// $post_detail['now'] 3// $post_detail['pre'] 4// $post_detail['next'] 5function get_now_next_pre_posts($now_post_ID) { 6 7 $args = array( 8 'posts_per_page' => -1, 9 'offset' => 0, 10 'category' => '', 11 'category_name' => '', 12 'orderby' => 'date', 13 'order' => 'DESC', 14 'include' => '', 15 'exclude' => '', 16 'meta_key' => '', 17 'meta_value' => '', 18 'post_type' => 'blog', 19 'post_mime_type' => '', 20 'post_parent' => '', 21 'author' => '', 22 'post_status' => 'publish', 23 'suppress_filters' => true 24 ); 25 $posts_array = get_posts( $args ); 26 $ID = $now_post_ID; 27 $post_detail; 28 29 foreach ($posts_array as $key => $value) { 30 //配列から現在の記事情報を参照 31 if ($ID == $value->ID) { 32 if ($key == 0) { 33 //最初の記事 34 $post_detail['now'] = $posts_array[$key]; 35 $post_detail['pre'] = $posts_array[$key+1]; 36 }else if($key + 1 >= count($posts_array)){ 37 //最後の記事 38 $post_detail['now'] = $posts_array[$key]; 39 $post_detail['next'] = $posts_array[$key-1]; 40 }else{ 41 //通常の記事 42 $post_detail['now'] = $posts_array[$key]; 43 $post_detail['pre'] = $posts_array[$key+1]; 44 $post_detail['next'] = $posts_array[$key-1]; 45 } 46 } 47 } 48 return $post_detail; 49}

投稿2016/07/13 12:58

jjzoow96

総合スコア40

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

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

0

previous_posts_linkprevious_post_link
next_posts_linknext_post_link
では?

【previous_posts_link、next_posts_link が表示されない理由 | テクニカルノート】
http://accelboon.com/tn/?p=569

【next_posts_link:WordPress私的マニュアル】
http://elearn.jp/wpman/function/next_posts_link.html

【next_post_link:WordPress私的マニュアル】
http://elearn.jp/wpman/function/next_post_link.html

投稿2016/07/12 04:33

kei344

総合スコア69407

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

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

jjzoow96

2016/07/12 05:18

ご回答ありがとうございます。 そちらの方法も確かめたのですが、上手く行きません。恐らく上手くいくと<a>タグが排出されると思いますが、何もhtml状に表示されません。 その他にはPlugin Ambrosite Next/Previous Post Link Plusも試しました。functions.phpでの設定に問題があるのでしょうか?
jjzoow96

2016/07/12 05:43

試したのですが表示されません。 因みにこちらのコードを試すとvar_dumpがNULLと表示されます。記事は、20件ほどあるのですが。 </aside> <!-- blog_ 1はタクソノミー名 --> <?php var_dump(next_post_link( '%link &raquo;', '%title', true, '', 'blog_1' )); ?> <?php var_dump(previous_post_link( '%link &raquo;', '%title', true, '', 'blog_1' )); ?> <?php endwhile; ?>
kei344

2016/07/12 07:28

同じテンプレート内で query_posts を使っていたりしませんか?
jjzoow96

2016/07/13 01:49

ご回答ありがとうございます。query_postsを使用は、しておりません。 今回は、少し強引ですが、get_postsを使い カスタム投稿内の記事を全て取得しforeach文で次の記事と前の記事を取得する独自関数を作り対応しました。色々とお騒がせしました。
kei344

2016/07/13 02:21

お役に立てずにすみません。まだ質問が「受付中」になっていますが、いったんご自身の回答をもって「解決済」にされてはいかがでしょうか。
jjzoow96

2016/07/13 12:59

早速、解決済にしました。色々とありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問