STAFF BLOG
2017.10
31
タグ:

wordpressで「今見ている記事の著者が書いた次の記事」のリンクが欲しかったのだけど
そんなテンプレートタグは無かった。

外人さんがやってた。
https://wordpress.org/support/topic/previous-next-post-navigation-by-author/
※$wpdb->prepareの仕様が変わったので、そのままは使えない。

ので、作った。

//↓ここから function.phpにコピペ /////////////////////////////////////
function prenex_by_author($prenex,$str=""){
  global $wpdb, $post;

  if($prenex == "pre"){
    $target = $wpdb->get_row($wpdb->prepare("
        SELECT ID, post_title
        FROM $wpdb->posts
        WHERE post_type='post'
        AND post_status='publish'
        AND post_author= %s
        AND post_date post_author
        ,$post->post_date
    ));
  }elseif($prenex == "nex"){
    $target = $wpdb->get_row($wpdb->prepare("
      SELECT ID, post_title
      FROM $wpdb->posts
      WHERE post_type='post'
      AND post_status='publish'
      AND post_author= %s
      AND post_date > %s
      ORDER BY post_date ASC
      LIMIT 1;"
      ,$post->post_author
      ,$post->post_date
    ));
  }

  if($target){
    if(!$str){$str = $target->post_title;}
    echo 'ID).'">'.$str.'';
  }
}
//↑ここまで function.phpにコピペ /////////////////////////////////////

  //使い方
  //prenex_by_author($prenex,$str)
  // $prenex 前か次を「pre」か「nex」で指定。省略時は何も出力しない。
  // $str    リンクを貼る文字列。省略時は記事タイトル。
  //直接aタグを出力する。次や前の記事が無い場合は何も出力しない。

  //使用例
  prenex_by_author("pre");
  prenex_by_author("nex",'次の記事');

このページを友達とシェアしよう!