未分類

WordPress パーマリンクをカテゴリー/年/で表示させたい 検証

投稿日:2017年2月25日 更新日:


実際の実装はこちらここは検証のページです。

パーマリンクは/%category%/%year%/%post_id%/ となっているが、
要望として、

  • カテゴリー一覧ページに年代出せる機能
  • URLがhttp://kato.space/カテゴリー/2017/ とさせたい。
  • ページャーがクリックで、http://kato.space/カテゴリー/2017/page/4/ となるので、
    単純にURLを取得するだけだとエラーになる。

まずはcategory-スラッグ.phpを用意する
実際のパーマリンクを取得してみる。

一度、get値取るか?

検証1

http://kato.space/wp/wordpress/2017/ としたとき、
print_r($_GET);では配列は0 Array ( )となる。
パーマリンクを基本にすると、
http://kato.space/wp/?cat=5
Array ( [cat] => 5 ) となり、
http://kato.space/wp/?cat=5&m=201702
http://kato.space/wp/?cat=5&m=201302
http://kato.space/wp/?m=201302
上記であれば取得できる。
Array ( [m] => 201302 )

検証2

年代ごとの取得は可能のよう
@See http://qiita.com/noqua/items/a26cfcb378300ba20bb1
archiveFunc() という関数がある模様

@See 年別 アーカイブの表示方法について
@See  WordPressのアーカイブページで投稿を年度別に一覧表示したかった。

 

検証3

単純にカテゴリーページで年代でフィルタリンクかければ良いのでは?
問題は/page/2/とかの問題

上記で取得2017年とかは絞込みは可能

なので、

この$yearをgetから取得できれば完璧か。
http://kato.space/wp/wordpress/2017/
もしくは
http://kato.space/wp/wordpress/2017/
http://kato.space/wp/wordpress/page/2/
要望は

http://kato.space/wp/wordpress/2017/
http://kato.space/wp/wordpress/2017/page/2/

だが

URLから抜き出すしかないのか?
WordPressで現在のURLのパスを配列で取得する
@See https://watanabemitsutoshi.com/wordpress-get-url-path

 

検証4

躓き あれ?パーマリンク

/%category%/%year%/

で、
http://kato.space/wp/wordpress/2013/
http://kato.space/wp/wordpress/2016/
でもいけるが、リンクが取得できない。
/%category%/%year%/%post_id%/ じゃなきゃだめだよね。

 

検証5

とりあえず、

という感じで取得できるし、
URLが

http://kato.space/wp/wordpress/2013/
http://kato.space/wp/wordpress/2013/page/2/

http://kato.space/wp/wordpress/2017/
http://kato.space/wp/wordpress/2017/page/2/

上記でもアクセスできるので、あとは、
<?php wp_get_archives(‘type=yearly’); ?> このリンクを修正したい。


http://kato.space/wp/wordpress/2013/page/2/でページ移管ができない

 

調べると、http://kato.space/wp/wordpress/2017/もページャーが効かない

現在のページが不明になっていた模様

@See http://webimemo.com/wordpress/1813

 

 

検証6

get_archives_linkを加工する

通常だと
http://kato.space/wp/date/2016/ となる
これを ↓
http://kato.space/wp/カテゴリー名/2016/ のリンクとしたい。

@See 「wp_get_archives()」で出力されるHTMLタグをカスタマイズ[WordPress]
純粋に年代記事があるか検索はできないのだろうか?
wp_get_archives ではクエリ文を投げている。

じゃ、これ普通にクエリ作ればいいのか

SELECT * FROM wp_posts WHERE DATE_FORMAT(post_date, ‘%Y’)=2013;

SELECT DATE_FORMAT( post_date , “%Y” ) AS y, COUNT( id ) AS count FROM wp_posts GROUP BY DATE_FORMAT( post_date , “%Y” )

@See

mysqlでdate型を月毎に集計する
http://y0m0r.hateblo.jp/entry/20140618/1403105741

じゃ、これで関数を作るか。

検証7

コメンドアウトはテストで出力、そのままちと残す。

検証8

ページャーで空のページがある。
@See http://xtra-blog.net/pagination/

@See https://2inc.org/blog/2012/09/06/1947/
どうやら「posts_per_pageの値が「1ページに表示する最大投稿数」よりも小さいとページングが正しく動作しない」というのは定説らしい。

 

上記で解決。

 

 

 

 

 

 

http://kato.space/wp/wordpress/2017/
http://kato.space/wp/wordpress/2017/page/2/
でも動作するな。
では、%year%が取得できればいいのか

 

パーマリンクのテスト
wp_get_archives

デモ
http://kato.space/test_archives.php

関数リファレンス/get archives link

http://kato.space/wp/date/2017/page/4/
これを
http://kato.space/カテゴリー/2017/page/4/
として動作させたい

まずはcategory-スラッグ.phpを用意する

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

no image

茅場町 備や

茅場町 備や 茅場町 備や 茅場町 備や 夜は茅場町 備や 熱燗2合を3杯

no image

これは2013年のカテゴリー一覧用のテスト投稿ですよ。その8

これはカテゴリーソートのテストページです

no image

何もない基本のWordPressのDIVとか見てみる。

まずは色々消す。 @See  http://denno-sekai.com/wordpress-head-cleanup/ <link rel=”profile” hre …

no image

get_header() wp_head() 違い

<?php get_header(); ?> テーマでのヘッダーの読み込み <?php wp_head(); ?&g …

no image

パソコンを仮想化させる Disk2vhd

パソコンを仮想化させたい。 専門用語的には、P2V V2V など Physical to Virtual フィジカル トゥ バーチャルね 有名なソフトは、 XenConvert Disk2vhd では …