WP: Widget 年別アーカイブリストを表示する方法と和暦で表示する方法

Quick Edit Pencil
WordPressのサイドバーウィジェットのアーカイブを月別で表示する

JavaScriptで和暦も表示して、ドロップダウンに表示するアーカイブリストもフィルターする。フィルターはSQLで除外・含むタクソノミー、タームを指定できる。



PHP Code Widgetで追加したウィジェットに書く




年別アーカイブリを表示する




class WP_Widget_Archives を使う
  1. <?php
  2.  
  3. // ウィジェットと同義の設定
  4. $instance= array(
  5. //※'title' => '', // タイトル ※フックで指定する
  6. 'dropdown' => 1, // ドロップダウン表示
  7. 'count' => 1 // 投稿数を表示
  8. );
  9.  
  10. // 必要があれば設定する
  11. $args = array();
  12.  
  13. // フック
  14. add_filter( 'widget_title', 'hook_widget_title' ); // タイトルをフック
  15. add_filter( 'widget_archives_dropdown_args', 'hook_widget_archives_args' ); // ドロップダウンアーカイブタイプをフック
  16. add_filter( 'widget_archives_args', 'hook_widget_archives_args' ); // リストアーカイブタイプをフック
  17.  
  18. // クラスを実体化する
  19. $my_archives1 = new WP_Widget_Archives();
  20. // メソッド(関数)を起動する
  21. $my_archives1->widget( $args, $instance );
  22.  
  23. // フックを解除して他に影響を及ぼさない
  24. remove_filter( 'widget_title', 'hook_widget_title' );
  25. remove_filter( 'widget_archives_dropdown_args', 'hook_widget_archives_args' );
  26. remove_filter( 'widget_archives_args', 'hook_widget_archives_args' );
  27.  
  28. // フック・カスタム関数
  29. function hook_widget_title( $title ) {
  30. // タイトルを変更する
  31. $title = '';
  32. return $title;
  33. }
  34. function hook_widget_archives_args( $args ) {
  35. // デフォルトの月別(type=monthly)から年別のアーカイブに変更
  36. $args['type'] = 'yearly';
  37. return $args;
  38. }
  39.  
  40. ?>

リストの西暦を和暦に変換または和暦西暦の両方を表示する

JavaScriptをphp閉じタグの後に続ける
  1. <script type='text/javascript'>
  2. /* <![CDATA[ */
  3. (function() {
  4. {
  5. // この関数の呼び出し位置を取得し
  6. var scpt,s;
  7. scpt = document.getElementsByTagName("script");
  8. scpt = scpt[scpt.length-1];
  9. s = scpt;
  10. }
  11. // scriptタグに隣接する前の要素を取得
  12. var dropdown = s.previousElementSibling;
  13. for( var i = 0; i < dropdown.length; i++ ){
  14. var t = dropdown.options[i].text;
  15. var matches = t.match(/\d{4}/);
  16. for(r in matches){
  17. if(r==0){
  18. var y = matches[r];
  19. //console.log(y);
  20. y = parseInt(y);
  21. if (isNaN(y)) { s = "数字を入力して下さい。"; }
  22. else if (y > 1988) { s = "平成"+(y-1988)+"年"; }
  23. else if (y > 1925) { s = "昭和"+(y-1925)+"年"; }
  24. else if (y > 1911) { s = "大正"+(y-1911)+"年"; }
  25. else if (y > 1867) { s = "明治"+(y-1867)+"年"; }
  26. else if (y > 1864) { s = "慶応"+(y-1864)+"年"; }
  27. else if (y > 1863) { s = "元治"+(y-1863)+"年"; }
  28. else if (y > 1860) { s = "文久"+(y-1860)+"年"; }
  29. else if (y > 1853) { s = "安政"+(y-1853)+"年"; }
  30. else if (y > 1847) { s = "嘉永"+(y-1847)+"年"; }
  31. else { s = "1848(嘉永元年)より大きい年数を指定下さい。"; }
  32. //console.log(s);
  33. dropdown.options[i].text = t.replace(/(\d{4})/, y+'年 / '+s);
  34. break;
  35. }
  36. };
  37. }
  38. })();
  39. /* ]]> */
  40. </script>

月別アーカイブから特定のタクソノミーやタームを除外・含める

wp_get_archives のフィルターアクションを使う
  1. // wp_get_archives
  2. add_filter( 'getarchives_where', 'cat_limited_wp_get_archives' );
  3. // wp_get_archives
  4. remove_filter( 'getarchives_where', 'cat_limited_wp_get_archives' );
  5. // wp_get_archives
  6. function cat_limited_wp_get_archives( $where ) {
  7. echo $where;
  8. echo $dropdown_id;
  9. global $wpdb;
  10. $cat_string = '3,4,5';
  11. $where .= " AND $wpdb->posts.ID IN ( SELECT tr.object_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy = 'object' )";
  12. return $where;
  13. }

参考リンク


【JavaScript】西暦を和暦に変換する - オープンリファレンス
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4. <meta http-equiv="Content-Style-Type" content="text/css" />
  5. <meta http-equiv="Content-Script-Type" content="text/javascript" />
  6. <title>サンプル</title>
  7. <script language="JavaScript" type="text/javascript"><!--
  8. window.onload = function(){
  9. document.getElementById("convert").onclick = function(){
  10. var y = document.getElementById("seireki").value;
  11. y = parseInt(y);
  12. if (isNaN(y)) { s = "数字を入力して下さい。"; }
  13. else if (y > 1988) { s = "平成"+(y-1988)+"年"; }
  14. else if (y > 1925) { s = "昭和"+(y-1925)+"年"; }
  15. else if (y > 1911) { s = "大正"+(y-1911)+"年"; }
  16. else if (y > 1867) { s = "明治"+(y-1867)+"年"; }
  17. else { s = "西暦は1868(明治元年)より大きい年数を指定下さい。"; }
  18. document.getElementById("wareki").value = s;
  19. }
  20. }
  21. --></script>
  22. </head>
  23. <body>
  24. <h1>西暦を和暦に変換する</h1>
  25. <form name="sampleForm" id="sampleForm" method="get" action="sample.cgi">
  26. <div>西暦:<input type="text" id="seireki" name="seireki"></div>
  27. <div>和暦:<input type="text" id="wareki" name="wareki"></div>
  28. <div><input type="button" value="和暦へ変換" id="convert"></div>
  29. </form>
  30. </body>
  31. </html>

wordpress 月別アーカイブから特定カテゴリーを除外する方法 | WEBデザイナーのしおり

SQL NOT IN を IN にすると含めるカテゴリとなる。
  1. function cat_limited_wp_get_archives( $where ) {
  2. global $wpdb;
  3. $cat_string = '3,4,5'; 
  4. $where .= " AND $wpdb->posts.ID NOT IN ( SELECT tr.object_id FROM $wpdb->term_relationships AS tr INNER JOIN $wpdb->term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy = 'category' AND tt.term_id IN ($cat_string) )";
  5. return $where;
  6. }
  7. add_filter( 'getarchives_where', 'cat_limited_wp_get_archives' );

WordPress 年別アーカイブリストを表示する方法 - by Takumi Hirashima

WordPressでフックを使ってウィジェットのアーカイブの出力をカスタマイズする – WebCake

PHPでのclassの使い方、宣言や呼び出しの基礎 | おすすめのプログラミングスクール比較!最短で上達するなら?

class内の関数をprivateにして呼び出したい | WordPress.org

疑似変数$thisで、メソッドから同じクラス内の別のメソッドを呼び出す - PHPリファレンス

WordPressで年別に分けて月のアーカイブリストを表示する方法 | webOpixel

【JavaScript入門】matchメソッドの使い方と正規表現の活用方法! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト
  1. var mystr = "a1234b45c2d54321";
  2. var result = mystr.match(/\d{2,4}/g);
  3. for(r in result){
  4. console.log(result[r]);
  5. };

和暦西暦変換表
和暦←→西暦 変換表
 和 暦 和 暦西暦弘道館
年齢
誠之館
年齢
-------元年始まり月日
天明6年-17861-43ひのえうまヘイ-
天明7年-17872-44ひのとひつじテイ-
天明8年-17883-45つちのえさるシン-
天明9年寛政1年17894-46つちのととりユウ-
-寛政2年17905-47かのえいぬコウジュツ-
-寛政3年17916-48かのとシンガイ-
-寛政4年17927-49みづのえジン-
-寛政5年17938-50みづのとうしチュウ-
-寛政6年17949-51きのえとらコウイン-
-寛政7年179510-52きのとオツボウ-
-寛政8年179611-53ひのえたつヘイシン-
-寛政9年179712-54ひのとテイ-
-寛政10年179813-55つちのえうま-
-寛政11年179914-56つちのとひつじ-
-寛政12年180015-57かのえさるコウシン-
享和1年寛政13年180116-58かのととりシンユウ1801/2/5
享和2年-180217-59みづのえいぬジンジュツ-
享和3年-180318-60みづのとガイ-
享和4年文化1年180419-1きのえコウ1804/2/11
-文化2年180520-2きのとうしオツチュウ-
-文化3年180621-3ひのえとらヘイイン-
-文化4年180722-4ひのとテイボウ-
-文化5年180823-5つちのえたつシン-
-文化6年180924-6つちのと-
-文化7年181025-7かのえうまコウ-
-文化8年181126-8かのとひつじシン-
-文化9年181227-9みづのえさるジンシン-
-文化10年181328-10みづのととりユウ-
-文化11年181429-11きのえいぬコウジュツ-
-文化12年181530-12きのとオツガイ-
-文化13年181631-13ひのえヘイ-
-文化14年181732-14ひのとうしテイチュウ-
文政1年文化15年181833-15つちのえとらイン1818/4/22
文政2年-181934-16つちのとボウ-
文政3年-182035-17かのえたつコウシン-
文政4年-182136-18かのとシン-
文政5年-182237-19みづのえうまジン-
文政6年-182338-20みづのとひつじ-
文政7年-182439-21きのえさるコウシン-
文政8年-182540-22きのととりオツユウ-
文政9年-182641-23ひのえいぬヘイジュツ-
文政10年-182742-24ひのとテイガイ-
文政11年-182843-25つちのえ-
文政12年-182944-26つちのとうしチュウ-
文政13年天保1年183045-27かのえとらコウイン1830/12/10
-天保2年183146-28かのとシンボウ-
-天保3年183247-29みづのえたつジンシン-
-天保4年183348-30みづのと-
-天保5年183449-31きのえうまコウ-
-天保6年183550-32きのとひつじオツ-
-天保7年183651-33ひのえさるヘイシン-
-天保8年183752-34ひのととりテイユウ-
-天保9年183853-35つちのえいぬジュツ-
-天保10年183954-36つちのとガイ-
-天保11年184055-37かのえコウ-
-天保12年184156-38かのとうしシンチュウ-
-天保13年184257-39みづのえとらジンイン-
-天保14年184358-40みづのとボウ-
弘化1年天保15年184459-41きのえたつコウシン1844/12/2
弘化2年-184560-42きのとオツ-
弘化3年-184661-43ひのえうまヘイ-
弘化4年-184762-44ひのとひつじテイ-
弘化5年嘉永1年184863-45つちのえさるシン1848/2/28
-嘉永2年184964-46つちのととりユウ-
-嘉永3年185065-47かのえいぬコウジュツ-
-嘉永4年185166-48かのとシンガイ-
-嘉永5年185267-49みづのえジン-
-嘉永6年185368-50みづのとうしチュウ-
安政1年嘉永7年185469-51きのえとらコウイン1854/11/27
安政2年-185570152きのとオツボウ-
安政3年-1856-253ひのえたつヘイシン-
安政4年-1857-354ひのとテイ-
安政5年-1858-455つちのえうま-
安政6年-1859-556つちのとひつじ-
安政7年万延1年1860-657かのえさるコウシン1860/3/18
文久1年万延2年1861-758かのととりシンユウ1861/2/19
文久2年-1862-859みづのえいぬジンジュツ-
文久3年-1863-960みづのとガイ-
文久4年元治1年1864-101きのえコウ1864/2/20
慶応1年元治2年1865-112きのとうしオツチュウ1865/4/7
慶応2年-1866-123ひのえとらヘイイン-
慶応3年-1867-134ひのとテイボウ-
慶応4年明治1年1868-145つちのえたつシン1868/9/8
-明治2年1869-156つちのと-
-明治3年1870-167かのえうまコウ-
-明治4年1871-178かのとひつじシン-
-明治5年1872-189みづのえさるジンシン-
-明治6年1873-1910みづのととりユウ-
-明治7年1874-2011きのえいぬコウジュツ-
-明治8年1875-2112きのとオツガイ-
-明治9年1876-2213ひのえヘイ-
-明治10年1877-2314ひのとうしテイチュウ-
-明治11年1878-2415つちのえとらイン-
-明治12年1879-2516つちのとボウ-
-明治13年1880-2617かのえたつコウシン-
-明治14年1881-2718かのとシン-
-明治15年1882-2819みづのえうまジン-
-明治16年1883-2920みづのとひつじ-
-明治17年1884-3021きのえさるコウシン-
-明治18年1885-3122きのととりオツユウ-
-明治19年1886-3223ひのえいぬヘイジュツ-
-明治20年1887-3324ひのとテイガイ-
-明治21年1888-3425つちのえ-
-明治22年1889-3526つちのとうしチュウ-
-明治23年1890-3627かのえとらコウイン-
-明治24年1891-3728かのとシンボウ-
-明治25年1892-3829みづのえたつジンシン-
-明治26年1893-3930みづのと-
-明治27年1894-4031きのえうまコウ-
-明治28年1895-4132きのとひつじオツ-
-明治29年1896-4233ひのえさるヘイシン-
-明治30年1897-4334ひのととりテイユウ-
-明治31年1898-4435つちのえいぬジュツ-
-明治32年1899-4536つちのとガイ-
-明治33年1900-4637かのえコウ-
-明治34年1901-4738かのとうしシンチュウ-
-明治35年1902-4839みづのえとらジンイン-
-明治36年1903-4940みづのとボウ-
-明治37年1904-5041きのえたつコウシン-
-明治38年1905-5142きのとオツ-
-明治39年1906-5243ひのえうまヘイ-
-明治40年1907-5344ひのとひつじテイ-
-明治41年1908-5445つちのえさるシン-
-明治42年1909-5546つちのととりユウ-
-明治43年1910-5647かのえいぬコウジュツ-
-明治44年1911-5748かのとシンガイ-
大正1年明治45年1912-5849みづのえジン1912/7/30
大正2年-1913-5950みづのとうしチュウ-
大正3年-1914-6051きのえとらコウイン-
大正4年-1915-6152きのとオツボウ-
大正5年-1916-6253ひのえたつヘイシン-
大正6年-1917-6354ひのとテイ-
大正7年-1918-6455つちのえうま-
大正8年-1919-6556つちのとひつじ-
大正9年-1920-6657かのえさるコウシン-
大正10年-1921-6758かのととりシンユウ-
大正11年-1922-6859みづのえいぬジンジュツ-
大正12年-1923-6960みづのとガイ-
大正13年-1924-701きのえコウ-
大正14年-1925-712きのとうしオツチュウ-
大正15年昭和1年1926-723ひのえとらヘイイン1926/12/25
-昭和2年1927-734ひのとテイボウ-
-昭和3年1928-745つちのえたつシン-
-昭和4年1929-756つちのと-
-昭和5年1930-767かのえうまコウ-
-昭和6年1931-778かのとひつじシン-
-昭和7年1932-789みづのえさるジンシン-
-昭和8年1933-7910みづのととりユウ-
-昭和9年1934-8011きのえいぬコウジュツ-
-昭和10年1935-8112きのとオツガイ-
-昭和11年1936-8213ひのえヘイ-
-昭和12年1937-8314ひのとうしテイチュウ-
-昭和13年1938-8415つちのえとらイン-
-昭和14年1939-8516つちのとボウ-
-昭和15年1940-8617かのえたつコウシン-
-昭和16年1941-8718かのとシン-
-昭和17年1942-8819みづのえうまジン-
-昭和18年1943-8920みづのとひつじ-
-昭和19年1944-9021きのえさるコウシン-
-昭和20年1945-9122きのととりオツユウ-
-昭和21年1946-9223ひのえいぬヘイジュツ-
-昭和22年1947-9324ひのとテイガイ-
-昭和23年1948-9425つちのえ-
-昭和24年1949-9526つちのとうしチュウ-
-昭和25年1950-9627かのえとらコウイン-
-昭和26年1951-9728かのとシンボウ-
-昭和27年1952-9829みづのえたつジンシン-
-昭和28年1953-9930みづのと-
-昭和29年1954-10031きのえうまコウ-
-昭和30年1955-10132きのとひつじオツ-
-昭和31年1956-10233ひのえさるヘイシン-
-昭和32年1957-10334ひのととりテイユウ-
-昭和33年1958-10435つちのえいぬジュツ-
-昭和34年1959-10536つちのとガイ-
-昭和35年1960-10637かのえコウ-
-昭和36年1961-10738かのとうしシンチュウ-
-昭和37年1962-10839みづのえとらジンイン-
-昭和38年1963-10940みづのとボウ-
-昭和39年1964-11041きのえたつコウシン-
-昭和40年1965-11142きのとオツ-
-昭和41年1966-11243ひのえうまヘイ-
-昭和42年1967-11344ひのとひつじテイ-
-昭和43年1968-11445つちのえさるシン-
-昭和44年1969-11546つちのととりユウ-
-昭和45年1970-11647かのえいぬコウジュツ-
-昭和46年1971-11748かのとシンガイ-
-昭和47年1972-11849みづのえジン-
-昭和48年1973-11950みづのとうしチュウ-
-昭和49年1974-12051きのえとらコウイン-
-昭和50年1975-12152きのとオツボウ-
-昭和51年1976-12253ひのえたつヘイシン-
-昭和52年1977-12354ひのとテイ-
-昭和53年1978-12455つちのえうま-
-昭和54年1979-12556つちのとひつじ-
-昭和55年1980-12657かのえさるコウシン-
-昭和56年1981-12758かのととりシンユウ-
-昭和57年1982-12859みづのえいぬジンジュツ-
-昭和58年1983-12960みづのとガイ-
-昭和59年1984-1301きのえコウ-
-昭和60年1985-1312きのとうしオツチュウ-
-昭和61年1986-1323ひのえとらヘイイン-
-昭和62年1987-1334ひのとテイボウ-
-昭和63年1988-1345つちのえたつシン-
平成1年昭和64年1989-1356つちのと1989/1/8
平成2年-1990-1367かのえうまコウ-
平成3年-1991-1378かのとひつじシン-
平成4年-1992-1389みづのえさるジンシン-
平成5年-1993-13910みづのととりユウ-
平成6年-1994-14011きのえいぬコウジュツ-
平成7年-1995-14112きのとオツガイ-
平成8年-1996-14213ひのえヘイ-
平成9年-1997-14314ひのとうしテイチュウ-
平成10年-1998-14415つちのえとらイン-
平成11年-1999-14516つちのとボウ-
平成12年-2000-14617かのえたつコウシン-
平成13年-2001-14718かのとシン-
平成14年-2002-14819みづのえうまジン-
平成15年-2003-14920みづのとひつじ-
平成16年-2004-15021きのえさるコウシン-
平成17年-2005-15122きのととりオツユウ-
平成18年-2006-15223ひのえいぬヘイジュツ-
平成19年-2007-15324ひのとテイガイ-
平成20年-2008-15425つちのえ-
平成21年-2009-15526つちのとうしチュウ-
平成22年-2010-15627かのえとらコウイン-
平成23年-2011-15728かのとシンボウ-
平成24年-2012-15829みづのえたつジンシン-
平成25年-2013-15930みづのと-
平成26年-2014-16031きのえうまコウ-
平成27年-2015-16132きのとひつじオツ-
平成28年-2016-16233ひのえさるヘイシン-
平成29年-2017-16334ひのととりテイユウ-
平成30年-2018-16435つちのえいぬジュツ-
平成31年-2019-16536つちのとガイ-
平成32年-2020-16637かのえコウ-
平成33年-2021-16738かのとうしシンチュウ-
平成34年-2022-16839みづのえとらジンイン-
平成35年-2023-16940みづのとボウ-
平成36年-2024-17041きのえたつコウシン-
平成37年-2025-17142きのとオツ-
平成38年-2026-17243ひのえうまヘイ-
平成39年-2027-17344ひのとひつじテイ-
平成40年-2028-17445つちのえさるシン-
平成41年-2029-17546つちのととりユウ-
平成42年-2030-17647かのえいぬコウジュツ-
平成43年-2031-17748かのとシンガイ-
平成44年-2032-17849みづのえジン-
平成45年-2033-17950みづのとうしチュウ-
平成46年-2034-18051きのえとらコウイン-
平成47年-2035-18152きのとオツボウ-
平成48年-2036-18253ひのえたつヘイシン-
平成49年-2037-18354ひのとテイ-
平成50年-2038-18455つちのえうま-
平成51年-2039-18556つちのとひつじ-
平成52年-2040-18657かのえさるコウシン-
平成53年-2041-18758かのととりシンユウ-
平成54年-2042-18859みづのえいぬジンジュツ-
平成55年-2043-18960みづのとガイ-

[JavaScript] ループ途中で抜ける処理は for(in break) ではなく some を使おう♪ - Qiita

最新コード実装20230222版

  1. <?php
  2. // ウィジェットと同義の設定
  3. $instance= array(
  4. //※'title' => '', // タイトル ※フックで指定する
  5. 'dropdown' => 1, // ドロップダウン表示
  6. 'count' => 1 // 投稿数を表示
  7. );
  8. // 必要があれば設定する
  9. $args = array();
  10. // フック
  11. add_filter( 'widget_title', 'hook_widget_title' ); // タイトルをフック
  12. add_filter( 'widget_archives_dropdown_args', 'hook_widget_archives_args' ); // ドロップダウンアーカイブタイプをフック
  13. add_filter( 'widget_archives_args', 'hook_widget_archives_args' ); // リストアーカイブタイプをフック
  14. // クラスを実体化する
  15. $my_archives1 = new WP_Widget_Archives();
  16. // メソッド(関数)を起動する
  17. $my_archives1->widget( $args, $instance );
  18. // フックを解除して他に影響を及ぼさない
  19. remove_filter( 'widget_title', 'hook_widget_title' );
  20. remove_filter( 'widget_archives_dropdown_args', 'hook_widget_archives_args' );
  21. remove_filter( 'widget_archives_args', 'hook_widget_archives_args' );
  22. // フック・カスタム関数
  23. function hook_widget_title( $title ) {
  24. // タイトルを変更する
  25. $title = '';
  26. return $title;
  27. }
  28. function hook_widget_archives_args( $args ) {
  29. // デフォルトの月別(type=monthly)から年別のアーカイブに変更
  30. $args['type'] = 'yearly';
  31. return $args;
  32. }
  33. ?>

このブログの人気の投稿

PowerShellのGetDetailsOf メソッドでプロパティの詳細情報のID番号と項目名を列挙します

Blender: 辺の長さを数値で指定するアドオン

書字方向 横書方向変換スクリプト 左書きから右書きへ(コピペ用途)

ヤバい!JAPANNEXT WQHD対応 27型ワイド液晶ディスプレイ「JN-IPS2716WQHD」を注文してみた!!!

決定版 Edgeでローカルファイルを開く パワーシェルスクリプト (ウインドウズでドロップレット)

PowerShellで複数ファイルのプロパティを取得する方法(準備編)

カルチャーラジオ 科学と人間 薬と毒の歴史をひも解く 日本薬科大学教授…船山信次

Windows10でアプリケーションごとに輝度を設定、自動で変更する - AutoHotkey