茂原(ちかん看板)塗料の色により日焼け進行に差。

新茂原駅の南の神林踏切近く。

黄色のちかん看板。下の「注意」の文字が日焼けで見えなくなっています。

新茂原駅前。こちらの看板も「多発注意!!」の部分が日焼けしています。

朝日神社の近く。下の部分「に注意」が、見えなくなっています。

塗料の色によって日焼けの進行に差があるようです。※1

茂原(寿司店)新茂原駅前。ランチメニューもあります。

新茂原駅前の通り沿いには、飲食店が散在しています。

すし、天ぷら、うなぎの辰巳屋。

ランチメニューもあります。

ちらし寿司とビールを注文。

参考文献

参考記事

茂原(新茂原駅)紺地に白文字で書かれたホーロー駅名標。

今回は、茂原(千葉県茂原市)の町並みを散歩します。
外房線茂原駅の一つ手前の新茂原駅。

改札口へ。

紺地に白文字で書かれたホーロー駅名標。近年は姿を見かけなくなってきましたが、綺麗な状態で残っています。

駅舎もレトロな雰囲気です。

参考文献

参考記事

調布(敷石碑)常性寺。明治11年、布田貸座敷の全盛期。

布田駅近く。旧甲州街道沿いにある常性寺。

境内の西側手前の隅に、「敷石碑」が建っています。
これは、五宿の貸座敷業の主人が、明治11年、境内の敷石を寄付した記念碑です。※1

「五宿貸座敷」。

五宿貸座敷の主人20名の名が刻まれています。*1

1865年、幕府は長州征伐を行ない、布田五宿に対し、軍用金5000両の献上を要求しましたが、五宿は、飯盛り旅籠の設置の許可を願い出、飯盛旅籠が認められれば、7000両の冥加金を上納することを申し出ました。その結果、1866年 7月以前には布田五宿に飯盛旅籠が許可されました。その後、貸座敷業者は、1875年には17件を数え、さらに1877年には21軒に増加しましたが、その後は衰退しました。※2

この「敷石碑」は、布田の貸座敷が全盛期のものといえます。

参考文献

*1
今井金吾今昔三道中独案内新装版JTB出版事業局2004
国領より下布田へ

P.265
国領二丁目から一丁目に入ると、右手に常性寺がある。境内隅には敷石…

*2
続調布の里ものがたり編集委員会調布の里ものがたり女たちの明治・大正・昭和 : 研究レポート・資料・聞き書き 続調布市生活文化部女性課2000.11
布田五宿から仲町特飲街へ

P.73
甲州街道筋では、内藤新宿、高井戸、府中、八王子が飯盛女を置いていた…

参考記事

調布(台北飯店)ひし美ゆり子さん経営の店。

調布駅北側の商店街「調布銀座」にある台北飯店。

台北飯店は、ウルトラセブンにアンヌ隊員役として出演したひし美ゆり子さんが経営されている店です。※1

ランチメニューは種類が豊富です。

チャーハン・スープ餃子とビールを注文。

アンヌ隊員は、セブンファンだけではなく、多くの人々にとって永遠のあこがれです。※1

参考文献

*1
忘七の会ゆり子の部屋忘七の会 リンク

日本特撮ドラマ史上に輝く名作、『ウルトラセブン』(1967-68年全国放送)。

このホームページ リンク

ひし美さんへのファンレターの宛先は、ひし美さんが経営されている台北飯店調布…

参考記事

調布(牛乳販売店)名糖牛乳。旧甲州街道沿い。

調布駅の北側。旧甲州街道沿いにある名糖牛乳宮川販売店。

名糖牛乳のマーク。

名糖牛乳の商品が並んでいます。

横から見ると、看板建築であることが解ります。

参考文献

参考記事

調布(掩体壕大沢1号)戦闘機「飛燕」のモニュメント。

調布駅の北、武蔵野の森公園。

園内に掩体壕の遺構が残されています。

戦闘機「飛燕」のモニュメント。
「飛燕」は、第2次世界大戦中、川崎航空機工業(現在の川崎重工業)が製作した戦闘機で、唯一の水冷式戦闘機として開発され、最大速度610km/時、高度1万メートルでも編隊飛行が可能であるなど、当時の世界水準をいく高性能機でした。※1

掩体壕の前面は、ふさがれていますが、そこには、「飛燕」が描かれています。

参考文献

*1
川崎重工業株式会社川崎重工業株式会社 公式ページ川崎重工業株式会社
三式戦闘機「飛燕」

第2次世界大戦中、当社(川崎航空機工業)が製作した三式戦闘機「飛燕」は、太…

参考記事

調布(タコ公園)再建された「タコのすべり台」。

調布駅前公園は昭和47(1972)年に開園し、タコのすべり台があったことから「タコ公園」として親しまれてきましたが、京王線の地下化に伴う駅前広場や地下駐輪場などの整備のため、平成28(2016)年9月30日に閉園しました。*1

現在の「タコ公園(通称)」は、令和2(2020)年4月、調布市役所裏の京王相模原線の跡地に、鉄道敷地公園(仮称)が開園したもので、ここに、かつてのタコ公園のシンボルだった「タコのすべり台」が再建されました。*1

多くの市民からの復活の要望を受け、先代のタコの頭の一部が現在のタコの頭に埋め込まれているそうです。*1

すべり台は、迫力満点です。

参考文献

*1
調布市郷土博物館調布市郷土博物館 展示物調布市郷土博物館
タコ公園

調布駅前公園は昭和47(1972)年に開園し、タコのすべり台があったことから「タ…

参考記事

調布(日活撮影所の碑)銀座の並木通りとみゆき通りを再現したオープンセット。

桜堤通り沿いにある日活調布撮影所。近くには、多摩川自然観察緑地があって、水と緑の環境に恵まれた場所です。

撮影所の建物の東隣(写真右手前の塀のある場所)に、ぬのた公園への通り抜け通路の入口があります。

曲がりくねった通路を進むと、調布市立ぬの多公園への敷。(写真中央)地につながっていますが、この場所に小さな石碑があります

日活撮影所の碑。日活映画全盛時代を象徴する石碑です。
説明文によると、撮影所ができた頃は、周囲に住宅は無く、田園風景が広がっていたそうです。

1962年には銀座の並木通りとみゆき通り等の町並みを再現したオープンセットが完成し、同年3月公開の「銀座の恋の物語」「上を向いて歩こう」で使用されたそうです。

参考文献

参考記事

調布(映画俳優之碑)調布映画発祥の地の碑が隣接。

今回は、調布(東京都調布市)の町並みを散歩します。
多摩川5丁目の「角川大映スタジオ」(写真の左奥に見える建物)の近くに映画俳優之碑があります。

昭和の映画界を代表する俳優の名前が刻まれています。

映画俳優之碑のすぐ近く。多摩川5丁目児童遊園の敷地内には、調布映画発祥の碑。

碑の説明文によると、昭和8年1月、この地(調布市多摩川)の「水と緑と澄んだ空気」が映画産業に欠かすことのできない条件であったことから、最適地に選ばれ、日本映画株式会社が設立され、多摩川スタジオが完成したそうです。

参考文献

参考記事

吉原(弁財天の奉納額)昭和30年3月。水常楼が発起人。

吉原弁財天のお堂※1 の中に掲げられている奉納額。

当時の店舗の屋号が解る貴重な資料です。

額の左側は、料亭などの店舗の名が連なっています。

昭和30年3月、発起人は「水常」と記されています。

参考文献

参考記事

吉原(大震火災十週年記念月桂樹)水常楼伊藤常吉が寄進。

吉原弁財天の花吉原名残碑のあるあたり。最近、。椅子とテーブルが設置され、ここで、ゆっくりとできるようになりました。

テーブル近くにある「大震火災十週年記念月桂樹」の碑。※1

昭和7(1932)年3月に、水常楼の伊藤常吉が寄進しています。

月桂樹。

参考文献

*1
武村雅之東京の街に残る関東大震災の跡 : 講演要旨歴史地震 (26)歴史地震研究会2011 リンク

参考記事

この記事を参照している記事

伊勢原(菅原社奥の石塀)新吉原関係者の名。

吉原(十七回忌追善碑)吉原弁財天。水常楼伊藤常吉が寄進。

吉原弁財天の入口にある水常楼伊藤常吉が寄進玉垣。その大きさから、吉原の実力者であったことが解ります。

「水常」と刻まれた石柱が建つあたりには、さまざま石碑が密集しています。水常楼伊藤常吉が関係している石碑群と思われます。

奥にある吉原講の石碑。
伊藤常吉は、吉原を仕切った大物で、大雄山二十一丁目星宿燈を建てました。*1※1

十七回忌追善碑。※2
発起人に、伊藤常吉の名があります。

参考文献

*1
澤村泰彦星々のみちびき:大大雄山参道二十八宿灯平塚市博物館平成二十三年度冬期特別展図録平塚市博物館
星宿燈建立者の顔ぶれ

参廿一丁目の水常楼伊藤常吉は三業組合取締役等の公職に着いてはいなかったよう…

*2
武村雅之東京の街に残る関東大震災の跡 : 講演要旨歴史地震 (26)歴史地震研究会2011 リンク

参考記事

※1大雄山(二十一丁目星宿燈)水常楼伊藤常吉が建てた星宿燈。

この記事を参照している記事

伊勢原(菅原社奥の石塀)新吉原関係者の名。

吉原(美乃屋)とんかつ専門店。老舗店が建ち並ぶ通り。

桜鍋料理の「中江」※1 や「土手の伊勢屋」※2などの名店が建ち並ぶ土手通り※3※4。

とんかつ専門店の美乃屋。

落ち着ける店内。


かつ丼とビールを注文。
かつ丼は。さやえんどう、しいたけなども入っていて絶品です。

大雄山(二十八丁目星宿燈)道了信仰の指導的立場にあった中米楼が寄進。

大雄山最乗寺境内の多宝塔への登り口の近くに、大きな石碑が2つ並んでいる場所があります。

石碑の裏側に、二十八丁目星宿燈があります。一丁目から数え歩いて最後の星宿燈です。

東京市浅草新吉原中米(なかごめ)楼と刻まれています。
二十八丁目星宿燈を建てた中米楼は、吉原の道了信仰の指導的立場にありました。*1
中米楼の関係者が出版した本として『吉原夜話』(青蛙房,1964)があります。初代市川猿之助(1855-1922、)の妻である吉原妓楼(中米楼)の女主人・喜熨斗古登子が、幕末から明治にかけての吉原の様子について口述したものです。*2*3

森の中に、苔に覆われた星宿燈が建つ姿は、幻想的です。

参考文献

*1
澤村泰彦星々のみちびき:大大雄山参道二十八宿灯平塚市博物館平成二十三年度冬期特別展図録平塚市博物館
星宿燈建立者の顔ぶれ

参廿一丁目の水常楼伊藤常吉は三業組合取締役等の公職に着いてはいなかったよう…

*2
山下洋子歌舞伎俳優の芸談 : 近現代歌舞伎におけることばの変化を知る資料として立教大学大学院日本文学論叢21立教大学2021.11 リンク

P.164
俳優の関係者が出版した本として『吉原夜話』(1964・青蛙房)が…

*3
喜熨斗古登子吉原夜話 青蛙房1964
母古登の小言

母は自分の名を琴ともまた古登も書いていましたが、晩年、私がよくもらう手紙に…

参考記事

大雄山(二十一丁目星宿燈)水常楼伊藤常吉が建てた星宿燈。

仁王門から「天狗のこみち」を歩くこと数十分。道了尊バス停の手前で道路に合流します。

参二十一丁目の星宿燈。「参」は星座の名前です。

水常楼伊藤常吉が建てた星宿燈。伊藤常吉は、吉原を仕切った大物でした。吉原各所の石造物に名を残しています。*1※1

星宿燈は古く、苔の緑に覆われています。

参考文献

*1
澤村泰彦星々のみちびき:大大雄山参道二十八宿灯平塚市博物館平成二十三年度冬期特別展図録平塚市博物館
星宿燈建立者の顔ぶれ

参廿一丁目の水常楼伊藤常吉は三業組合取締役等の公職に着いてはいなかったよう…

参考記事

※1吉原(石燈籠)吉原神社。水常、松葉など有力者が寄進。

この記事を参照している記事

伊勢原(菅原社奥の石塀)新吉原関係者の名。
吉原(十七回忌追善碑)吉原弁財天。水常楼伊藤常吉が寄進。

大雄山(十一丁目星宿燈)参道の両脇に建つ古びた石の道標。

仁王門を過ぎ、さらに参道を進むと、やがて「てんぐのこみち」と名付けられた遊歩道に入ります。杉林の中を曲がりくねる坂道を登っていくと、100mおきぐらいに古びた石の道標が建っています。

石の道標の表面には一丁目から二十八丁目までが記され、人々に道程を知らせています。これらの道標はお寺が発行した古い案内書には「星宿燈」と紹介されています。*1

十一番目の道標。
寄進者の「新吉原江戸町二丁目 元鴨井楼 鴨志田かね」の名が刻まれています。

十一番目であることを示す「十一丁目」と刻まれたその上にもう一文字「虚」という漢字が冠されています。
これは、日本や中国で用いていた古い星座(星宿)名です。*1

上部に四角い口を開け、背中にも丸い穴があるので、かつては桟をはめ、灯をともして、道のありかを知らせる石灯籠だったとわかります。*1

参考文献

*1
澤村泰彦星々のみちびき:大大雄山参道二十八宿灯平塚市博物館平成二十三年度冬期特別展図録平塚市博物館
星の名前を頂く道標たち

P.1
参道の両脇には、古びた石の道標が建ち、往来を見送っています 表面には…

参考記事

大雄山(道了大薩埵碑)仁王門前左側。「新吉原講」の大文字。

仁王門前左側にある道了大薩埵碑。道了大薩埵(どうりょうだいさった)は、大雄山最乗寺の守護神。

台石に、「新吉原講」と大きく刻まれています。
吉原道了尊参拝の講の人たちが道標を建立したことがわかります。*1

道標の後ろ側に、由緒を示す石碑が建っています。

石碑の銘文を要約すると、遊廓吉原が開かれた元和年間に吉原講が結成され、以来、大雄山に詣でていて、天明2年に国府津に道標を建て、明治13年に再建したが、その道標が明治35年の海嘯(かいしょう)で崩壊したため、36年に松田に再建したということです。吉原講がかなり古くからも有力な講であったことが解ります。明治40年の星宿燈建立※1も、この吉原講が行ったと考えられます。*1

吉原講は、吉原遊廓が開かれた元和年間に結成され、以来、大雄山に詣でていました。天明2年に国府津に道標を建て、明治13年に再建、さらに明治36年に松田に再建されました。明治40年の星宿燈建立も、この吉原講が行ったと考えられています。*1

参考文献

*1
澤村泰彦星々のみちびき:大大雄山参道二十八宿灯平塚市博物館平成二十三年度冬期特別展図録平塚市博物館
吉原講と大雄山

P.30
参道四丁目の仁王門の前には高さ2mを超える大きな石の道標が参道をはさ…

参考記事

※1大雄山(道了尊仁王門)二十八宿石燈籠の案内板。

この記事を参照している記事

大雄山(道了大薩埵碑裏面)裏面下部に新吉原講の講元、世話人の記載。
伊勢原(星図が刻まれた石碑)最乗寺の開祖了庵禅師の故郷の道了尊。星曼荼羅。

大雄山(道了尊仁王門)二十八宿石燈籠の案内板。

大雄山駅から最乗寺へ向かう道を1kmほど行くと、道了尊仁王門があります。(道了尊は最乗寺の別名です。)

階段脇に案内板があります。

仁王門があるこの場所までは、道路を歩きますが、仁王門から先は「天狗の小径」と呼ばれる杉林の中の参道が分岐していて、歩いて登ることもできます。参道には、一丁目から二十八丁目までを数える道標(二十八宿石燈籠)が建っています。

二十八宿石燈籠は、中国式の星座名を冠した石燈籠型の道しるべです。一丁目から二十八丁目の道程を知らせるとともに、宵祭りの参道を照らし参拝者を安全に導く燈籠として設けられたものです。燈籠は、元治元年(1864年)小田原誠信社中、及び明治40年(1907)東京浅草新吉原講中によって建てられました。

仁王門から最乗寺へは、およそ2kmの道のりです。

大雄山(大雄山駅)2016年に、赤電の復刻版の運行が開始。

今回は、大雄山(だいゆうざん、神奈川県南足柄市)の町並みを散歩します。

伊豆箱根鉄道大雄山線の終着駅の大雄山駅。電車はここで折り返して小田原へ戻っていきます。

大雄山線には、長年(1962年-1996年)にわたり「赤電」の名で親しまれた「150系電車」がありましたが、創立100周年を迎えた2016年に、復刻版の運行が開始されました。*1

車両前面の「小田原←→大雄山」の行先系統板。 いい味出してます。

参考文献

*1
伊豆箱根鉄道株式会社大雄山線車両の紹介伊豆箱根鉄道株式会社 リンク

赤電の名で親しまれた大雄山線「150系電車」は、1962年(昭和37年)から運行を…

参考記事

吉原(平賀源内の墓)代表作「風流志道軒伝」は、戯作の快作。

東京都台東区橋場2丁目にある「平賀源内の墓」の石碑。

実際の墓所は、ここから1本南側の通り沿いにあります。

平賀源内といえば、「エレキテル(摩擦起電機)」を復元制作したことで有名ですが、文筆においても実績を残しており、後の式亭三馬や十返舎一九にも影響を及ぼした戯作の開祖として評価されています。*1

案内板より:
平賀源内は享保13年(1728)、讃岐国志度浦(現香川県志度町)に生まれる。高松藩士白石良房の三男で名は国倫(くにとも)。源内は通称である。寛永2年(1749)に家督を継ぎ、祖先の姓である平賀姓を用いた。本草学、医学、儒学、絵学を学び、事業面では成功しなかったが、物産開発に尽力した。 物産会の主催、鉱山開発、陶器製造、毛織物製造などを行ない、エレキテル(摩擦起電機)を復元制作、火かん布(かかんぷ)(石綿耐火布)を発明した。一方で風来山人(ふうらいさんじん)・福内鬼外(ふくちきがい)などの号名を持ち、「風流志道軒伝(ふうりゅうしどうけんでん)」などの滑稽本や浄瑠璃「神霊矢口渡(しんれいやぐちのわたし)などの作品を残している。

源内の文筆における代表作である「風流志道軒伝」は、主人公が巨人国、小人国、女護島、などを遍歴するもので、「ガリヴァー旅行記」を思わせる風刺とファンタジーの快作と評されています。*1

参考文献

*1
新戸雅章平賀源内 : 「非常の人」の生涯平凡社2020.7

P.140
主人公が巨人国、小人国、女護島、などを遍歴する 「風流志道軒伝(ふ…

参考記事

吉原(石燈籠)吉原神社。水常、松葉など有力者が寄進。

吉原神社。吉原遊廓ゆかりの神社です。

境内にある石燈籠。

かつての吉原の有力者が寄進したものです。
水常は、大正期からある妓楼で、昭和33年の廃止時まで続きました。

鳥居に名が刻まれている伊藤常吉は、水常楼の楼主です。

吉原(千束いせや)「土手のいせや」の兄弟店。

今回は吉原(東京都台東区)の町並みを散歩します。
金美館通り沿いの交差点の角。

天ぷらの「いせや」が営業中です。

暖簾には、〇に「天」の字。「土手のいせや」と同じです。

天丼とビールを注文。

参考文献

参考記事

茂原(人車軌道の展示)人が車両を手で押していた頃。

人車軌道(人が車両を手で押す軌道)の展示。

茂原と長南の間の人車軌道が開通したのは明治42年10月。茂原駅前を起点にして 長南の台向(現在の愛宕バス停)までの 約9kmの単線軌道が県道沿いに敷設されました。

人が車両を手で押していた頃の写真が残されています。

車両の内部。

参考文献

参考記事

茂原(サッカーゲームの展示)郷土資料館。

茂原公園内にある茂原市郷土資料館へは、茂原駅から徒歩(約1.5km)か、藻原寺バス停で下車し、向かいます。

展示室に入ると、天然ガスの説明コーナーがあります。

右手前にある昭和の茶の間の展示。

エポック社のサッカーゲーム(初期のモデル)の展示。
初期のモデルでは、ボールのコントロールが難しいものでしたが、最新版では、改良が加えられています。*1

スコアボードなど、リアル感を演出しています。

参考文献

*1
エポック社エポック社のサッカー盤エポック社 リンク

参考記事

茂原(大和屋食堂)大正時代から続く定食屋。

茂原の榎町通り商店街。

交差点の角に、大正時代から続く定食屋の大和屋食堂があります。*1

映画のロケにも使われたこともあるノスタルジックな雰囲気の店内。*1

メンチカツ定食とビールを注文。

参考文献

*1
映画「今はちょっと、ついてないだけ」in茂原実行委員会今はちょっと、ついてないだけロケ地マップ茂原市を巡る!千葉もばらロケーションサービス事務局2022

大和屋食堂。
大正時代から続く定食屋。ノスタルジックな雰囲気が伝わってく…

参考記事

茂原(ガス溜め跡)赤レンガ造りの基礎。昌平町稲荷神社の境内。

茂原では、明治時代、自家用の天然ガス井戸が数多く掘られ、「利用組合」という組織による天然ガス事業が営まれていました。昌平町稲荷神社の境内に、「茂原昌平町天然瓦斯組合」の痕跡が残されています。*1

境内に設置されたガス溜めの基礎(赤レンガ造り)の跡。40m³ほどの円形のタンクでした。*1

上から見ると、円形であることが解ります。

そばの石碑に、当時の「茂原昌平町天然瓦斯組合」の経緯、記録、組合員名が刻まれています。*1

参考文献

*1
茂原市長公室企画課ふるさと茂原のあゆみ茂原市
天然ガス利用組合

P.170
明治末期から昭和初期にかけて、茂原には「利用組合」という組織によ…

参考記事

茂原(ガス管橋)ガスタンクの近く。荒瀬橋の南。

JR線と並行する荒瀬橋から南側の遠望。

近くにガスタンク(現在塗装中)がある場所から、阿久川にガス管橋が架かっています。

太いパイプが3本。「天然ガスの町」茂原を象徴する風景です。

正式には「瓦斯輸送管専用橋」と呼ぶようです。昭和50年に作られました。

茂原(日立安房神社)旧日立製作所茂原工場の守護神。

茂原駅から一宮川に架かる「日進橋」を渡ると、通称「日立通り」と呼ばれる広いまっすぐな通りが続きます。

「日立正門」バス停。かつての日立製作所茂原工場の遺構とも解釈できるバス停です。

バス停の隣に、日立安房神社があります。

昭和29年10月13日、館山市の安房神社からの分霊により、日立安房神社が建立されました。*1

日立製作所茂原工場や関連会社の名が刻まれています。

参考文献

*1
日立製作所茂原工場茂原工場三十年史日立製作所茂原工場
日立安房神社建立

日立製削除の各工場にはそれぞれ守護神が祭られているが茂原工場にはそれがなか…

参考記事

茂原(浮世風呂)駅前の通り。現在は改装中。

今回は、茂原(千葉県茂原市)の町並みを散歩します。
駅前の通り沿いにある「浮世風呂」。式亭三馬の滑稽本「浮世風呂」からの連想でしょうか。

10室近くありそうな建物です。

現在は、改装中のようです。

入口を入ってすぐのところに、2階へ上る赤色の階段があります。

参考文献

参考記事

木更津(浅野作造の墓)「浅野様」と呼ばれた民間信仰。

木更津市吾妻1丁目にある極楽寺(平等院)。

ここに、幕末に幕府軍の一人として、官軍と戦い戦士した浅野作造の墓があります。
戦死した浅野作造の首級は木更津へ運ばれ、吾妻神社境内の路傍にさらされると、村人がその哀れさを忍び、路のほとりに小さな石をたて、お線香をあげて弔ったのが、いつの間にか「浅野様」と呼ばれ、民間信仰の対象になりました。*1

「浅野作造 源頼房」と刻まれています。

裏には「慶応四年辰年六月四日」「大正五年三月十八日改葬?」とあります。
大正時代になって、この地に墓が建てられたことが解ります。

木更津町鳥瞰図*2を見ると、吾妻神社の隣に、「浅野様」に記載があり、信仰を集めていた当時の様子が解ります。

木更津遊廓の遊女たちは、開店前のひととき、吾妻の浅野様へ参詣しました。*3

参考文献

*1
小原長太郎吾妻の昔むかし小原長太郎

浅野作造は当地方における佐幕方義軍の一人で官軍に対抗、横田で戦死。その首級…

*2
松井天山千葉県市街鳥瞰図聚海書林1989
木更津町鳥瞰図1932
*3
高崎繁雄木更津地名散歩新千葉新聞 連載新千葉新聞社
⑥ さかんだな1976.3.5

仲片町公会堂のあたりは昭和10年代は海だったところで、通称八幡屋のカシとい…

参考記事

木更津(稲荷森古墳)明治14年の貸座敷新設の時に出土。

木更津市街東部の木更津2丁目。旧地名で、「元新地」と呼ばれていた地域の近くです。

周囲がコンクリートで固められたこの場所は、稲荷森古墳(前方後円墳)の前方部がわずかに残った部分です。明治14年に貸座敷を新設する時に鈴、鏡の破片、金銅装の刀、土器等が出土しました。*1

稲荷森古墳の上に高台稲荷神社が建っています。

古墳の頂上部分に建つ鳥居。

参考文献

*1
「房総の古墳を歩く」編集委員会房総の古墳を歩く芝山町教育委員会
稲荷森古墳

P.112
稲荷森古墳は 木更津駅東口の北東方向 木更津二丁目の稲荷森神社にあ…

参考記事

木更津(橘神社)周辺一帯は「恋の森」と呼ばれています。

太田山公園の山頂にある橘神社。

橘神社は、日本武尊(やまとたけるのみこと)の東国征伐のとき亡くなった妃の弟橘媛(おとたちばなひめ)を慕って建てられた橘神社と言われています。

案内板に「恋の森」の由来が書かれています。

尊は、この山頂から海を見下ろし、媛を偲んでしばしこの地を去りかねたと伝えられています(写真は「きみさらずタワー」からの遠望)。

「きみさらず伝説」は房総各地に残されており、木更津には、弟橘媛を祭神とする吾妻神社※1があります。

木更津(護岸跡)江戸初期の海の痕跡。

富士見2丁目の南側。
ここに、江戸初期の海の痕跡である護岸が残っています。*1

大きな商家だったと思われるお宅。

しっかりとした石垣が残っています。

隣の駐車場にも石垣が続いています。

参考文献

*1
日本放送協会ブラタモリ#179「木更津」初回放送2021年5月29日日本放送協会

江戸時代初期の護岸跡。

参考記事

木更津(木更津会館脇の細道)かつて二業組合があった場所です。

富士見通り近くの飲食街※1 から、東へ抜ける細道。

木更津会館(木更津芸寮組合、旧二業組合*1)のある通りに出ます。

「木更津会館」の建物の脇には、さらに、風情のある路地が続いています。

歩いてきた路地を振り返って見たところ。

【参考文献】
*1 石川空山,石崎白水:大木更津(木更津日報社,1939)付録「大木更津全図」

木更津(商店街)朝倉ストアーの商店街。

あ〇くらのうち、1枚欠落していますが、下の看板から「朝倉」と読み取れます。

特徴的な形状の軒下部分。

奥行のある建物です。

参考文献

参考記事

木更津(寿司店)みまち通り。落ち着ける空間。

木更津駅に近い「みまち通り」商店街を少し行ったところにあるお鮨屋さん。

かつての商店街の繁栄ぶりが想像できる店構えです。

狭い店内ですが、落ち着ける空間です。

チラシ寿司とビールを注文。

参考文献

参考記事

木更津(童謡碑)證誠寺の狸ばやし。伝説を元に詩人の野口雨情が作詞。

今回は、木更津(千葉県木更津市)の町並みを散歩します。
木更津駅西口より徒歩10分。矢那川ほとりにある証城寺。

狸塚は、昭和4年、童謡「證誠寺の狸ばやし」の流行を記念し、建立されました。(案内板より)

證誠寺の狸塚:
この辺りが昼でも暗い程茂っていた昔のこと、寺の和尚さんが夜中に目を覚ますと庭の方が大変賑やかです。そっと節穴からのぞいて見ますと外は月夜で昼間のようです。折から秋のこととて萩の花盛り、ところが驚いたことには大小の狸数十匹が輪になり、
  證誠寺山のペンぺコペン
  俺らの友達やドンドコドン
と腹を打ちながら踊っています。和尚さんもついおもしろくなり一緒になって踊りました。 こうして毎晩踊りましたが 或夜狸達が全く姿を消してしまったので不思議に思って居りますとかわいそうにもお腹をたたき破って薮の中で死んでいました。和尚さんはこの友達をあわれに思ってねんごろに葬ってやったのがこの狸塚です。
この伝説が野口雨情先生によって狸ばやしの童謡が生まれ、さらに中山晋平先生の作曲により今や天下に広まりました。

童謡碑。
野口雨情・中山晋平先生の直筆が発見されたのを機に、昭和31年、建立されました。(案内板より)

1946年に放送が開始されたNHKのラジオ番組「英語講座」のテーマソングとして用いられ、最近では、2021年度後期のNHK朝ドラ「カムカムエヴリバディ」の劇中歌として登場しました。

英語歌詞:
Come come everybody.
How do you do, and how are you?
Won’t you have some candy?
One and two and three, four, five.
Let’s all sing a happy song.
Sing trala la la la.

参考文献

参考記事

谷田部(ブロンズ像)市民ホールやたべ。

「市民ホールやたべ」前に「みなのね」と題する像が設置されています。

茨城県出身の一色邦彦さんの作品です。

男女の裸像です。

後ろから。

参考文献

参考記事

谷田部(牛乳店)明治ビタ牛乳。

四つ角。

今ではほとんど見かけなくなった牛乳店。

モダンな意匠の2階部分。

明治ビタ牛乳。左側には、「日の出」に「乳」のマーク。

参考文献

参考記事

谷田部(飛行場橋)橋を渡った先はかつての飛行場の敷地。

筑波学園病院から南へ進むと、常磐自動車道を渡る橋に出会います。

「飛行場橋」と命名されています。
飛行場橋は1980年に建造。常磐自動車道の開通は1981年です。飛行場を偲んで命名されたのだと思います。

橋を渡った先はかつての飛行場の敷地です。現在は、「農林さくら通り」となっています。

飛行場橋の遠望。

参考文献

参考記事

谷田部(海軍航空隊記念碑) 零戦や紫電を主力とした首都防空の実戦部隊。

谷田部の市街から約2Kmのところにある筑波学園病院。
筑波学園病院は、旧日本海軍航空隊谷田部飛行場の跡地に建てられており、筑波学園病院の前身である谷田部協同病院はその兵舎を病棟として設立、平成11年頃まで利用されていました。*1

北西側の駐車場の脇に記念碑が建っています。
高さ約メートルの記念碑の上部には、零戦のモニュメントが配置されています。*2

碑文

谷田部海軍航空隊は、昭和七年霞ヶ浦海軍航空隊(予科練)の補助飛行場としてこの地に開設され、練習機による飛行士養成を目的としていたが、昭和十四年独立し、零戦や紫電を主力として首都防空の実戦部隊となった。その後昭和十九年戦闘機操縦訓練隊となり沖縄方面の特攻作戦に従事した。戦後、跡地の一部建物(兵舎)を筑波学園病院の病棟として利用し、平成十一年に解体し現在に至っている。ここに恒久の世界平和を願いこの碑を建立するものである。

 平成二十五年三月吉日 

 財団法人筑波麓仁会

石造りでありながら、細部まで表現されています。

終戦の年の1945年には神風特攻隊「昭和隊」も編成され、沖縄方面の作戦で多くの若者が命を落としました。*2

記念碑は、「昭和隊」出撃時に隊員を見送ったとされる桜の木の下に設置されています。*2

参考文献

*1
筑波学園病院谷田部海軍航空隊記念碑除幕式筑波学園病院 リンク

谷田部海軍航空隊記念碑除幕式が2013年5月19日(日)筑波学園病院敷地内で行われ…

*2
茨城新聞茨城新聞クロスアイ茨城新聞 リンク
戦争の記憶後世に つくばの谷田部海軍航空隊跡地、関係者ら記念碑除幕2013.5.20 リンク

旧日本海軍の飛行搭乗員を養成する練習航空隊が置かれ、特攻要員の訓練も行われ…

参考記事

谷田部(水洗トイレ)高度成長期に多く見られたWCの表記。

飲食ビル※1 の敷地の脇の公衆トイレ。

白地に大きくな文字でWC(water closet=水洗トイレ)と書かれています。

水洗トイレ(WC)は、昭和30(1955)年に発足した日本住宅公団が広く普及させたものの一つです。*1
昭和30~40年代は、公衆トイレにWCと表記されているのをよく見かけた記憶がありますが、最近は、「Toilet」、「Restroom」やさまざまなピクトグラム(絵文字)で表記されることが一般的なようです。

隣はブロック塀で仕切られています。

参考文献

*1
谷直樹便所のはなし鹿島出版会1986.12

P.99
昭和30(1955)年に発足した日本住宅公団(現在の住宅都市整備公団)は…

参考記事

※1谷田部(飲食ビル)派手な装飾の飲食店。

谷田部(飲食ビル)派手な装飾の飲食店。

今回は、谷田部(茨城県つくば市)の町並みを散歩します。
谷田部の旧道沿いの郵便局近くの曲がり角に、飲食ビルがあります。

派手な装飾の飲食店。

居酒屋、クラブ、マッサージ店などが連なります。

飲食ビル口の看板。

参考文献

参考記事

この記事を参照している記事

谷田部(水洗トイレ)高度成長期に多く見られたWCの表記。

人形町(日本橋大伝馬町の路地)江戸の下水道が現代に引き継がれています。

日本橋富沢町の浜町川の水路跡※1 はさらに、北側へ続いています。
しかし、さきほどの商店街のような風景は全く無く、ビル裏側の殺風景な通路です。

水路跡の中央がやや窪んだ通路が延々と続きます。

通路は、「都有地」となっており、東京都下水道局が管理しています。
浜町川跡の地下に、公共下水道の「馬喰町幹線」がつくられているのは、「江戸の下水道が現代に引き継がれている。」といえます。※1

かつての浜町川は、千代田区岩本町まで続き、神田川に合流していました。

参考文献

*1
栗田彰江戸の川あるき青蛙房1999.7
浜町川

P.29
浜町川跡の地下に、公共下水道の「馬喰町幹線」がつくられているのは、…

参考記事

※1人形町(問屋橋跡北側の路地)日本橋富沢町。浜町川跡の商店街。

人形町(問屋橋跡北側の路地)日本橋富沢町。浜町川跡の商店街。

江戸時代、水路として活用されていた浜町川は、戦後、埋め立てられ、跡地のほとんどは、オフィスビルが連なるビルの裏側の路地となっていますが、日本橋富沢町の部分だけは、商店街の雰囲気が残っています。

「梅の家」の屋号が残るお宅。

昭和の雰囲気が残る通りです。

北側から見たところ。飲食店も営業中です。

人形町(真砂座の碑)明治39年、夏目漱石「猫」上演。

 

今回は、人形町(東京都中央区)の町並みを散歩します。

「日本橋中洲(にほんばしなかす)」という地名で呼ばれているこの付近は、もともとは、文字通り、隅田川の中州でした。
1695年(万治2年)、吉原の遊女高尾太夫がこの付近の船上で吊り斬りにされ、遺体が北新堀河岸(日本橋箱崎町)に漂着し、高尾稲荷に祀られたという逸話があります。※1

中洲は、江戸時代から明治にかけて、歓楽街として賑わいました。

マンション脇に鎮座する真砂座跡の碑。

漱石「猫」上演。真砂座跡、と刻まれています。

夏目漱石の「猫」は、小山内薫によって脚色された演劇で、明治39年に真砂座で上演されました。

碑文:
夏目漱石の「我輩ハ猫デアル」は、小山内薫によって脚色された。伊井蓉峰らが出演し、日本橋中洲の眞砂座跡で明治三十九(一九〇六)年十一月三日から三十日にかけて上演された。
平成十五年十月吉日
早稲田大学 第十四代総長 奥島孝康 識

 

日本橋(てんぷら天松)昭和11年創業。

日本橋室町1丁目。

ランチ営業中の老舗てんぷら店。

「てんぷら天松」は、1936年(昭和11年)に渋谷にて創業しました。

てんどんとビールを注文。

参考文献

参考記事

日本橋(清水理美容院)理容室と美容院。

日本橋室町の通り。

ビルの谷間に佇む理容室。昭和の情緒が残っています。

1階が理容。2階が美容です。

懐かしい感じのする店構えです。

参考文献

参考記事

日本橋(十軒店跡の碑)江戸時代の仮設専門店街。人形市。

日本橋の美術店のある交差点。

ここに、美術店などの有志が建てた「十軒店(じっけんだな)跡」の碑があります。
「十軒店」は、江戸時代の仮設専門店街(人形市)のことで、当初、同業者が十軒あったことから、こう呼ばれるようになりました。*1

隣の「コレド室町テラス」には、中央区教育委員会が建てた別の案内板。

三月の上巳(桃)の節句には、内裏雛・禿人形・飾道具等を、五月の端午の節句には、冑人形、鯉のぼり等を商う人形市が立ち、十二月の歳暮の破魔矢・羽子板等を商う市とあわせて、大変なにぎわいを見せていました。

「十軒店」の人形市が、葛飾北斎の「画本東都遊」に描かれていることが紹介されています。

参考文献

参考記事

日本橋(浮世小路)浮世ショウジ。落語「百川」の舞台。

今回は、日本橋(東京都中央区)の町並みを散歩します。
日本橋のCOREDO室町北側に、「浮世小路(うきよしょうじ)」と名づけられた通りがあります(写真下)。近くには、「浮世小路千疋屋ビル」というのもあり、江戸切絵図にも記載のある「浮世小路」の名称は、最近、人気のようです。

現在の浮世小路。写真左奥に見える鳥居は、日本橋福徳神社(芽吹稲荷)。

福徳神社の敷地に、「浮世小路と料亭百川(ももかわ)」の案内板があります。

案内板より:
福徳神社南側の通りは江戸時代「浮世小路」と呼ばれていました。浮世小路の東端北側には 落語噺の舞台としても知られる料亭百川があったとされています。百川は江戸屈指の料理茶屋として繁盛し、幕末にペリー艦隊が来航した時には、乗組員全員にすべて自前で本膳を提供したほどの力がある料亭でした。

参考文献

*1
北村一夫江戸東京地名辞典講談社2008
浮世小路

P.98
大田南畝(おおたなんぼ)の「一話一言」 によれば 江戸に小路(こうじ…

参考記事

柏(掩体壕跡)こんぶくろ池。

掩体壕には、有蓋(ゆうがい)のタイプと無蓋(むがい)のタイプがありますが、柏飛行場にあったのは、無蓋のタイプです。
こんぶくろ池のところに、1基残っています。

掩体壕の案内板。無蓋タイプは、周囲が土手で囲まれているイメージです。

観察路にしたがって進みます。

掩体壕跡。周囲が土手で囲まれていることが解ります。

参考文献

参考記事

柏(ジャンボ蛇口)設備会社の敷地に建つモニュメント。

柏の県道47号線沿いにある「ジャンボ蛇口」。まるで空を飛んでいるようです。

蛇口から水が出ていますが、後ろ側には何もありません。

蛇口は、近くにある水道などの設備会社の敷地に建つモニュメントです。蛇口から出る水の部分が支柱となっています。

支柱の根元部分は、きれいな花壇になっています。

参考文献

参考記事

柏(柏飛行場跡)旧陸軍東部第105部隊の営門。

現在の柏の葉公園一帯は、戦争中、旧日本陸軍の柏飛行場があった場所でした。
現在も旧陸軍東部第105部隊の営門が当時のまま残されています。*1

案内板には、飛行場の滑走路と誘導路の見取り図が示されています。*1

運動公園のあるあたりに、「飛行場跡地」の案内板があります。

つくばエクスプレス開通に伴う区画整理の中で、掩体壕や秋水の燃料庫などの新たな発見があったことが記されています。

参考文献

*1
柏市教育委員会旧陸軍東部第105部隊の営門柏市教育委員会2012.3.31

この門柱は、昭和13年(1938)11月に開設された柏飛行場の兵営施設の営門(旧陸…

参考記事

柏(ミートショップ)豊四季台団地。オリエンタルカレー。

豊四季台団地は、かつての柏競馬場跡地にできた団地です。

団地の中にある商店街のお肉屋さん。

揚げたてのコロッケが頂けます。

懐かしいオリエンタルカレー。通常は名古屋でしか買えません(一部の通販やカルディで購入できるそうですが)この店で買うことができます。

昭和45(1970)年頃、南利明※1 が名古屋弁のアクセントで、「ハヤシもあるでよう」とオリエンタル・スナックカレーのCFに登場するや、たちまち流行語になりました。*1

参考文献

*1
世相風俗観察会現代世相風俗史年表1945→2008河出書房新社2009
1970年 フィーリング時代のCM(1)

南利明が名古屋弁のアクセントで、「ハヤシもあるでよう」とオリエンタル・スナ…

参考記事

※1本庄(立小便看板)手作り感のある看板。大きな鳥居。

柏(柏競馬場跡地)現在の豊四季台団地。

柏の豊四季台団地。

かつて、ここには、地方競馬としては最大・最新の「柏競馬場」がありました。*1

競馬場は1段高い場所にあったため、その段差にかつての名残を見ることができます。写真は、団地の北東部分。

南西部分。こちらにもはっきりとした段差が認められます。

参考文献

*1
流山市立博物館友の会東葛流山研究 12号流山市立博物館友の会1993.11.25
福島茂太幻の「柏競馬場前駅」はどこに

P.139
千葉県畜産組合連合会が大正末期、千葉市外の椿森で草競馬を行ってい…

日本光学工業が柏競馬場敷地を買収

日本光学工業(現在のニコン)は、昭和18(1943年)年2月、陸軍航空本部発注の…

戦後の柏競馬が再開

昭和23年7月13日に競馬法が公布され、県では日本光学工業から競馬場を賃借して …

第一回春季柏競馬開催

経済不況が深刻化するなか、第一回春季柏競馬が昭和3年5月6日から3日間、県畜産…

参考記事

柏(柏銀座通り)柏市の中心地。老舗や飲み屋が多いところ。

JR柏駅東口の柏銀座通り。
柏神社前は柏市の中心地で、このあたりは、老舗や飲み屋が多いところです。*1

1F,2Fに飲食店が入るビル。

「柏銀座商店会」の看板。

賑やかな通りは、奥まで続いています。

参考文献

*1
山本鉱太郎房総の街道繁盛記崙書房出版1999.8
新興都市柏の歴史

P.324
柏神社前は柏市の中心地で、このあたりに老舗や飲み屋が多い。今でこ…

参考記事

木更津(六軒町)俗称六軒町と呼ばれた歓楽街跡地。

木更津市街の東のはずれ。国道16号線と国道409号線が交差するあたり。

この付近は貝塚の遺跡で、貝塚の発掘報告書に、「発掘場所(永井作豆造279番地)は、俗称「六軒町」と呼ばれる遊廓の屋敷跡」と記されています。*1*2

昭和34年頃までは、発掘場所の西側に、旅館や料理店が散在しており*3、歓楽街の名残があったようです。

南側の通り。

参考文献

*1
対馬郁夫木更津市永井作新田貝塚発掘略報対馬郁夫1957

本遺跡は木更津駅の北東方1500mの地点に位置し、現在の行政区分に依れば木更津…

*2
千葉市立加曽利貝塚博物館貝塚博物館紀要 第19号千葉市立加曽利貝塚博物館 リンク
*3
日本都市協会木更津市動態図鑑 昭和34年度版日本都市協会1959.7

参考記事

木更津(富士見亭)焼きそばの名店。

木更津の名店「富士見亭」。焼きそば専門店です。

矢那川の河口近くの交差点に1軒だけ建っています。

メニューは、「焼きそば」「焼きそば大盛」「缶ビール」の3品目のみ。

「焼きそば大盛」と「缶ビール」を注文。

参考文献

参考記事

木更津(富士見町の飲食店ビル)日焼けした広告看板。

木更津駅前から西へ延びる通り(富士見通り)に面して、飲食店のビルが建ち並んでいます。

クラブやバーが入るビル。

反対側から見たところ。

古びた広告看板。「こぶたの館」と書かれています。年数が経過しているためか、看板が著しく日焼けしています。

参考文献

参考記事

木更津(お好み通り)越路ビル。ビルの裏側へ抜けられます。

「お好み通り」は、ビルの裏側へ抜けられます。

富士見通りから、交差点を南へ入ったところにある越路ビル。

ビルの1階左寄りは、横丁になっていて「お好み通り」と名付けられています。

「お好み通り」は、ビルの裏側へ抜けられます。

参考文献

参考記事

木更津(掩体壕)旧日本海軍木更津海軍航飛行場。

江川海岸へ向かうの道路の南側(写真の左側)は、陸上自衛隊木更津駐屯地(旧日本海軍木更津海軍航飛行場)です。

フェンス越しに掩体壕(えんたいごう。戦時中の戦闘機用の壕)が見えます。

「木更津市郷土博物館 金のすず」の展示物によると、飛行場の北西部に単発機(発動機が1基)用の掩体壕が、飛行場の北側に中型機用の掩体壕が、それぞれ数基づつありました。

掩体壕を出て、この道路を移動し、滑走路から飛び立っていく姿が想像できそうです。

附近には、他にも遺構らしきものが見えます。

参考文献

参考記事

木更津(江川船堀)船堀改修記念の碑。

今回は、木更津の町並みを散歩します。
「日本のウユニ塩湖」と呼ばれ、人気のスポットとなっている江川海岸ですが、海岸の入口脇にある船堀は、昭和の雰囲気を醸し出している場所です。

船堀の中に出島のように突き出した場所にある綿津見神社。

高度成長期、東京湾岸の漁業協同組合は、莫大な補償金と引き換えに、次々と漁業権を放棄してきましたが、江川漁業協同組合は、東京湾岸で唯一残る自然干潟の潮干狩りをはじめ、現在も漁業が存続しています。

綿津見神社の敷地に、「江川船堀改修記念」の碑が建っています。

碑文:
遠き昔より海の幸を生業としきた私達は昭和十一年、旧海軍飛行場の建設に伴いこの地に移り、漁業の基地とした。以来四十有余年変遷著しい歴史の歩みの中に整備改修は、ままならず今日に至った。この船堀りの充実が多年に亘る組合員総ての願望であった。防衛施設庁、千葉県、木更津市の援助により、八千五百余万円の巨費を投入し、完成した。
昭和三十六年 江川漁業協同組合

綿津見神社から見た江川海岸方向。水門の向こうが潮干狩り場です。

参考文献

参考記事

谷田部(ホテルニュー梅屋)昭和55年にオープンしてから36年。

街道沿いにあった梅屋旅館※1 からすぐの場所にホテルニュー梅屋が営業中です。

明治に梅屋旅館※1 として創業し、ホテルニュー梅屋を昭和55年にオープンしてから36年、今もつくば市谷田部で続く老舗のホテルです。*1

HOTELUMEYAの屋上看板。

東側の運動場からの眺め。1階は、レストラン「ミルキーウエイ」。

参考文献

*1
ホテルニュー梅屋 公式ページ リンク

常磐道谷田部IC・圏央道つくば中央ICより車で5分の場所に 位置するホテルニュー…

参考記事

※1谷田部(梅屋旅館跡地)現在の梅屋ホテルの前身。

谷田部(梅屋旅館跡地)現在の梅屋ホテルの前身。

谷田川の橋から少し行ったところには、梅屋旅館(現在の梅屋ホテルの前身)がありました。旅館、料亭で芸者も置いていて繁盛していました。*1

梅屋旅館の建物は、しばらくの間、旧街道沿いに残っていました。ガラス戸に「梅屋」の文字が描かれていました。*1

現在も残る「梅屋旅館」の看板。

谷田川方面(西側)の遠望。

参考文献

*1
つくば書店レポート部つくばレポート vol.1つくば書店レポート部

橋から少し行ったところが旧梅屋で、現在の梅屋ホテルの前身があった。旅館、料…

参考記事

この記事を参照している記事

谷田部(ホテルニュー梅屋)昭和55年にオープンしてから36年。

谷田部(玉川堂)老舗和洋菓子店。かつては映画館をを経営。

四つ角のバス停のところにある老舗和洋菓子店の玉川堂。

玉川堂は、かつては、「玉川館」という映画館を経営していました。*1
「玉川館」は、現在の和菓子屋玉川堂の裏手にあり、谷田部の海軍の飛行場の航空隊の人たちが沢山来ていたそうです。*2

大福、柏餅など購入。餡子は非常にあっさりとしていて、いくつでも食べれます。

この付近は、旧町名で「内町」と呼ばれていました。
昭和 4 年~6 年の繁盛記によると、内町には、二業の料理旅館が存在していました。*3

参考文献

*1
小口千明茨城県つくば市谷田部市街にみる往年のにぎわい歴史地理学野外研究 (16):2014.3 p.63-97筑波大学人文社会ビジネス科学学術院人文社会科学研究群人文学学位プログラム歴史・人類学プログラム歴史地理学研究室2014.3 リンク

P.74
その裏側には「大正十三年七月二十二日建立という建立年月日と,建立に…

*2
つくば書店レポート部つくばレポート vol.1つくば書店レポート部

橋から少し行ったところが旧梅屋で、現在の梅屋ホテルの前身があった。旅館、料…

*3
小口千明近現代茨城県旧筑波郡および谷田部市街の活況とその後歴史地理学野外研究 (17):2016.3 p.59-94筑波大学人文社会ビジネス科学学術院人文社会科学研究群人文学学位プログラム歴史・人類学プログラム歴史地理学研究室 リンク

「谷田部商人繁昌記」(以下,原文)

谷田部(獣霊碑)大正13年建立。多数の寄付者名。

谷田部四つ角の交差点近くに、獣霊碑(牛馬の供養塔)が建っています。*1

碑の裏面には、寄付者として、谷田部町料理店として 11名,谷田部町芸妓営業として1名の名前があり、当時の賑わいが想定されます。*1

「大正13年建立」と刻まれています。

周囲は綺麗に整備されています。

参考文献

*1
小口千明茨城県つくば市谷田部市街にみる往年のにぎわい歴史地理学野外研究 (16):2014.3 p.63-97筑波大学人文社会ビジネス科学学術院人文社会科学研究群人文学学位プログラム歴史・人類学プログラム歴史地理学研究室2014.3 リンク

P.74
その裏側には「大正十三年七月二十二日建立という建立年月日と,建立に…

参考記事

谷田部(理容室)四つ角の近く。120年前に開業。

今回は、谷田部(茨城県つくば市)の町並みを散歩します。
つくばエクスプレス線みどりの駅からバスで約5分で谷田部四つ角の交差点へ到着です。

交差点の近く。

中華料理店のような店名のですが、理容室です。

地元の方の話によると、創業120年だそうです。

参考文献

参考記事

野田(蕎麦店)野田銀座の老舗。

野田銀座※1 の通り沿いのそば店「住吉」。

昭和の商工名鑑*1 や商工地図*2 にも載っている老舗です。

店内。

かつ丼の定食とビールを注文。

参考文献

*1
野田商工会議所野田商工名鑑 昭和38年度版野田商工会議所1963.8

P.199
芸妓置屋 中…

*2
東京交通社野田市流山町日本商工業別明細地図之内 No.1195東京交通社1956

参考記事

※1野田(野田銀座)芸妓置屋があった通り。国際クラブ。

野田(野田銀座)芸妓置屋があった通り。国際クラブ。

かつて野田銀座*1 と呼ばれていた通り。

昭和38年の「野田商工名鑑」によると、この付近には芸妓置屋がありました。*2

国際パブ。

明治~大正の頃は、近くに醸造工場(粕谷第五醸造場)があり、この通りには人車鉄道が通っていました。*3

参考文献

*1
東京交通社野田市流山町日本商工業別明細地図之内 No.1195東京交通社1956
*2
野田商工会議所野田商工名鑑 昭和38年度版野田商工会議所1963.8

P.199
芸妓置屋 中…

*3
報文社野田町全図(部分)報文社1915

千葉県野田町全図(大正四年)をもとに作図。

醸造工場
人車鉄道

参考記事

この記事を参照している記事

野田(蕎麦店)野田銀座の老舗。

野田(ビジネス旅館)交差点の角に面した入口。

香取神社の北側の十字路。

旅館の入口は交差点の角に面しています。

「馬酔木」。スナック店などでよく見かける屋号です。

北側の道はゆるやかに弧を描いています。

参考文献

参考記事

野田(香取神社の富士塚)境内の奥。粟嶋大神。

野田市上花輪の香取神社。かつては、この付近に多くの醸造所が密集していました。

境内の奥にある富士塚。3mぐらいはありそうな大きなものです。

麓に安置されている粟嶋大神。

頂上からは、反対側の道路の交差点が望めます。

参考文献

参考記事

野田(明治牛乳の牛乳箱)商店だったと思われるお宅。

醤油発祥の地の碑のあるあたりから東側へ延びる通り。

商店だったと思われるお宅。

木造家屋に木製の牛乳箱はよく似合います。

横開きタイプです。

参考文献

参考記事

野田(野田醤油発祥の地の碑)室町時代に飯田家の工場跡地

今回は、野田(千葉県野田市)の町並みを散歩します。
野田市街の中心部。野田郵便局の流山街道を挟んだ反対側の路地を少し入ったところに、野田醤油発祥の地の碑があります。

この地は、室町時代に飯田家が初めて野田で醤油を醸造した場所です(碑の案内文より)。

野田市の文化財に指定されています。

鳥居に、茂木房五郎(野田醤油(現キッコーマン)社長)の名が刻まれています。

参考文献

参考記事

木更津(吾妻神社の富士塚)社殿の左側。富士浅間大神。

吾妻神社社殿の左側(道路側)。

富士塚があります。

高さ2m近くありそうな富士塚です。

富士浅間大神。
日本神話に登場する木花咲耶姫(このはなさくやひめ)、邇邇芸命(ににぎのみこと)、磐長姫命(いわながたらしめのみこと)が祀られています。

参考文献

参考記事

木更津(吾妻神社)きみさらず伝説。石塔に楼名。

陸上自衛隊駐屯地の近く、木更津市吾妻2丁目にある吾妻神社。
吾妻神社の祭神は、弟橘媛(おとたちばなひめ)。弟橘媛は、日本書紀に登場する伝説上の英雄「日本武尊(やまとたけるのみこと)」の妃です(吾妻神社 案内板より)。

入口に建つ石柱の側面には、「君去らず 袖しが浦に立つ波の その面影を 見るぞ悲しき」の歌が刻まれています。

社伝には、日本武尊が東征の際。相模から上総へ海を渡ろうとした時、荒れた海に身を投じた弟橘媛の袖がこの近くの海岸に漂着したので、これを納めて吾妻神社を建てたとあります(吾妻神社 案内板より)。

「君不去」=きみさらず=木更津と呼ぶようになったといわれています(きみさらず伝説)。*1

この「きみさらず伝説」にあやかったのでしょうか、吾妻神社には、遊廓寄進の石塔があります。
右側の石塔には、「第一京都樓」と刻まれています(写真右下)。

左側には「第二京都樓」。

木更津遊廓の遊女たちは、開店前のひととき、吾妻へ参詣したそうです。*2

参考文献

*1
木更津市観光協会木更津市観光情報木更津市観光協会 リンク
木更津市の歴史 リンク

木更津の地名の起こりは、日本最古の歴史書「古事記」(7世紀頃)に登場する武…

*2
高崎繁雄木更津地名散歩新千葉新聞 連載新千葉新聞社
⑥ さかんだな1976.3.5

仲片町公会堂のあたりは昭和10年代は海だったところで、通称八幡屋のカシとい…

参考記事

この記事を参照している記事

浦賀(弟橘媛命の記念碑)弟橘媛命の辞詠。明治43年建立。
久里浜(夫婦橋)横須賀風物百選。人柱伝説。
鶴巻温泉(吾妻山)弟橘媛の伝説。相模湾方面の眺望。
木更津(橘神社)周辺一帯は「恋の森」と呼ばれています。

木更津(紅雲堂書店)木更津町鳥瞰図を販売中。

本町四つ角から少し入ったところにある紅雲堂書店。昔の佇まいのままの建物です。

軒下の屋号。

2010年頃から、まち歩きを目的とした鳥瞰図パネルが設置されるようになったためでしょうか。こちらの書店では、木更津町鳥瞰図の販売も行われています。

紅雲堂の位置が記されています。

参考文献

参考記事

木更津(旧金田屋洋品店)。昭和7年に建てられた看板建築。本町通り。

本町四つ角(中央2丁目)の角に残る看板建築。
「本町通り」には呉服屋などのお店や銀行などが軒を連ね、木更津の商業の中心地として栄えていました。*1

現在の建物は昭和7年に建てられた看板建築です。*1

モダンな外観は今も本町四つ角の目印として異彩を放っています。*1

現在は、時計修理・ラジオメーター・アンティークの専門店「金田屋リヒトミューレ」となっています。(前回(2007年)、訪れたときは、「レディースサークル ひまわり」でした。)

参考文献

*1
みなと木更津再生構想推進協議会ぶらり木更津まち歩きみなと木更津再生構想推進協議会
本町通りの旧金田屋洋品店街なみの情景(現地案内板)2010.3

昭和4年の絵図で金田屋洋品店のところが本町四つ角と呼ばれ、ここから南に「九…

参考記事

木更津(森田屋)江戸時代からの老舗生そば店。3階建ての防火帯建築。

木更津市中央1丁目の田面通り(たもどおり)。
かつては田んぼであった通りにたくさんの商店が並ぶようになったことから、「田面通り」と呼ばれるようになりました。*1
交差点の角に3階建ての防火帯建築が建っています。

1階には、「森田屋本店」。
江戸時代からの老舗生そば店です。*1
入口前には、かすれて、ほとんど読み取れない看板が立っています。

生そばの他に、洋食、中華、も。

天ぷらそばとビールを注文。

参考文献

*1
みなと木更津再生構想推進協議会ぶらり木更津まち歩きみなと木更津再生構想推進協議会
田面通りの久留里商店街なみの情景(現地案内板)2010.3

 木更津の街中から久留里へ通ずる街道は近郷からの人々で賑わい、かつては…

参考記事

木更津(こうもり安の墓)花柳界の寵児と言われるほどの人物。

今回は、木更津の町並みを散歩します。
木更津市中央1丁目にある選擇寺。

境内の奥まったところに、こうもり安の墓があります。

「こうもり安」は、木更津の油屋「紀の国屋」の次男として生まれ、男ぶりがよく、天性の美声に加え金回りもよく、花柳界の寵児と言われるほどの人物でした(案内板より)。

「こうもり安」は、歌舞伎「与話情浮名横櫛(よわなさけうきなのよこぐし)」の主人公の与三郎※1 の相棒(脇役)としておなじみでした(案内板より)。

昭和6年に、チャップリンの「街の灯」の主人公を「与話情浮名横櫛」のこうもり安に当てはめた「蝙蝠の安さん」が初演されました。

柏(踏切近くの飲食街)居酒屋、スナックが入る長屋風の狭小建物。

気象大学校近くの狭小建物。

長屋風の共同建物です。写真右奥は、東武野田線の踏切。

居酒屋、スナックなどが連なっています。

建物の裏側。わずかに曲線を描いています。

参考文献

参考記事

柏(松ケ丘一号型街路灯)登録有形文化財。

JR南柏駅から徒歩10分。松が丘団地へ向かう途中の寺院の敷地に重要文化財となっている街路灯(レトロ電柱)が保存されています。

電柱は柵で囲まれ、隣には、教育委員会の説明板があります。

プレートの文字も読め、保存状態は極めて良好です。

蓋を開けた中には、スイッチが納められています。

参考文献

参考記事

柏(商店街の質店)脇道を入ったところに看板。

商店街の脇道を入ったところにあるカラオケスナック。

その奥に、質店の暖簾が見えます。

質店の看板。

質店脇の路地。

参考文献

参考記事

柏(柏一小通り商店街)柏第一小学校近くの商店街。

柏駅西口から北側へ柏市立柏第一小学校向かう方向に、柏一小通り商店街が連なっています。

商店や居酒屋などが建ち並びます。

スナック「トミー」。「コーヒー」とも書かれていますが、飲食業柏連合会のホームページでは、業種は居酒屋となっています。

柏第一小学校側から。

参考文献

参考記事

柏(駅西口のもつやき店)憩いの場となっている桜の木。

今回は、柏(千葉県柏市)の町並みを散歩します。
柏駅西口のデッキを北側へ進み。階段を降りようとすると眼下に大きな桜の木が目に入ります。

その桜の木の下に、もつやきのお店。

外にも座席があります。

大きな桜の木の下は喫煙所になっていて、憩いの場になっています。

参考文献

参考記事

この記事を参照している記事

菊川(たばこ店)日本外国。憩いの場となっている桜の木。

関宿(水塚跡)かつての「水塚」を再現。

千葉県最北の関宿町の南。野田市中戸に、古民家カフェの「水塚」が高台に建っています。
店名の「水塚」は、かつての関宿で多く見られた、洪水の際に避難するための土盛りの上に設けられた建物の「水塚」*1 に由来するものと思われます。

反対側から見ると、土が盛られていることがよく解ります。

この日は、残念ながら休みの日でした。

江戸川の土手からの遠望。

参考文献

*1
千葉県立関宿城博物館関宿城博物館千葉県立関宿城博物館 リンク
近現代の治水・洪水 リンク

参考記事

関宿(風呂屋)今では少なくなったヒノキ風呂製造・販売。

関宿町の鈴木貫太郎記念館の近くに、今ではほとんど見かけなくなったヒノキ風呂製造・販売店があります。

「風呂」の文字。

風呂や桶などが販売されています。

工場が併設されています。

参考文献

参考記事

関宿(博物館の展示)江戸川、利根川の歴史と産業・暮らし。

関宿城博物館には、房総の河川 の利根川・江戸川の近世~近現代や産業・暮らしに関する展示が行われています。

当時の絵図。
関宿は、河岸の町となり、積荷を扱う商人が集まり、蔵が建ち並び、市場が開かれました。茶屋、旅籠、遊廓。賭場なども当然のごとく生まれました。*1

蒸気船「通運丸」が明治10年に就航し、関宿と両国(墨田区)を結びました。

関宿は、周囲を河川に囲まれ、水害が多かったため、人々は、土を盛って高くしたところに、水塚(みずか)と呼ばれる小屋(洪水時の避難施設)を作って、水がひくまでここに寝泊まりしました。

参考文献

*1
林上川と流域の地理学風媒社2021.10

P.114
関宿は、河岸の町となり、積荷を扱う商人が集まり、蔵が建ち並び、市…

参考記事

この記事を参照している記事

浦安(「蒸気河岸」跡)かつての蒸気船の発着所。

関宿(関宿城博物館)畑の中にそびえ立つ怪しげな天守閣。

今回は、関宿(せきやど、千葉県野田市)の町並みを散歩します。
東武動物公園駅から、バスで30分、そして徒歩で15分。畑の中に怪しげな天守閣がそびえたっています。

関宿城(せきやどじょう)は、野田市関宿三軒家にあった日本の城ですが、現在は、再現され現在は、千葉県立関宿城博物館になっています。

博物館の入口。

天守閣の最上階からの眺め。

参考文献

参考記事

出版のお知らせ

WordPressの本を書きました。Amazonでお買い求め頂けます。

 本書は、本来ブログ用ソフトであったWordPressを、Webサイト用のソフト(CMS)として活用するためのノウハウをまとめたものです。
 ブログは、記事を時系列で羅列したものです。ブログ記事が蓄積されると、たとえば、文献の情報のページを作り、これとブログ記事を連携させたいというような要望ができています。このような場合、サブクエリー(WP_Query)やサブループの記述などにPHPのコーディングが必要となるのですが、カスタマイズを進めていいくにつれ、PHPコードの量も増えメンテナンスの工数も増えます。
 本書は、PHPのコード量が多くてもメンテナンスが継続できるよう、類似のコードをクラスにまとめて再利用する方法について基本知識をまとめたものです。

タイトル:オブジェクト指向WordPress
著者名:風きよし
発行:古今東西舎
発売日:2020年9月1日
価格:¥1,700+税

参考文献

参考記事

WordPressからLeafletのポップアップを操作する

事例の概要

地図表示でマーカーを表示するとき、マーカーをクリックするとポップアップ表示するだけでなく、外部のテキストからポップアップを開くことができれば、より便利です(下図)。

この機能を実現するためには、Leaflet側のマーカーのポップアップとWordPressで表示するテキスト表示を動的に連動させることが必要です。

コード量も増えるので、再利用しやすいようにClassに分けて記述することが理想的です。

【お知らせ】
上記の事例3に示すオブジェクト指向(MVCモデル)の使い方については、本書で詳しく解説しています。


参考文献

参考記事

コード例

事例1:外部からLeafletを操作

事例の概要

本事例は、「Leaflet 外部からポップアップを開く」をもとに作成しました。

コード例
<body>
    <div id="map_1" style="height: 400px;"></div>
</body>

<p>
<a href="1234map_1"onmouseover="popupOn1(0);">【東京都】</a>
<a href="3456map_1" onmouseover="popupOn1(1);">【千葉県】</a>
<a href="589map_1" onmouseover="popupOn1(2);">【埼玉県】</a>
</p>

<script>
//背景地図
	var osm = new L.tileLayer
		('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    		maxZoom: 19,
    		attribution: "Map data © <a href='https://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap</a> contributors"
		});
	
	var map_1 = L.map('map_1', {
		layers: [osm],	
		center: [35.6896, 139.6918],
		zoom: 9,
    	zoomControl: true
		});

//マーカー情報
  var markers=[];	
	markers[0]=L.marker([35.6896, 139.6918]).addTo(map_1).bindPopup("東京都");
    markers[1]=L.marker([35.6050, 140.1234]).addTo(map_1).bindPopup("千葉県");
    markers[2]=L.marker([35.8572, 139.6490]).addTo(map_1).bindPopup("埼玉県");

//ポップアップを開く関数
  function popupOn1(id){
    markers[id].openPopup();
  }

</script>
上記コードの実行結果

【東京都】 【千葉県】 【埼玉県】

事例2:WordPressのループ処理とLeafletの連携

事例の概要

本事例は、WordPressのサブクエリーによってテキストデータを動的に表示し、そのループ処理の中でLeafletのマーカー表示を行い、WordPressのテキスト側からLeafletのポップアップ操作を行う事例です。

 冒頭のstatic public $const = array() ;でクラス定数$constを定義します。これは、ループ処理の中でマーカーの情報を一時的に格納するための配列定数です。
 $the_query = new WP_Query($args) ;にてサブクエリーを実行します。
 テキストを表示するWhileループの中で、クラス定数$constに、 緯度($lat),経度( $lon), コンテンツのタイトル($title)などを格納します。以上がPHPの処理です。
 次に、HTMLによる背景地図の設定を行います。
 <div id="map_2" style="height: 400px;"></div>
 最後にLeaflet.jsによる描画処理を行います。

コード例
static public $const = array() ;//クラス定数を定義
	
	public function __construct()
	{

//サブクエリー(テキストを抽出)
	$args = array(
		'post_type' => 'post',
		'tax_query' => array(
		'relation' => 'AND',
			array(
				'taxonomy' => 'region',			
				'field' => 'term_id',
				'terms' => '9790',//中央区
			),
			array(
				'taxonomy' => 'genre',				
				'field' => 'term_id',
				'terms' => '10274',//商店街
			)
		)
	);
	$the_query = new WP_Query($args) ;
//サブループ
	if($the_query->have_posts()){
		While($the_query->have_posts()){
			$the_query->the_post();
				$count++;
//表示(View)部分
	//クラス定数へ緯度経度情報を書き込み
			$array = code40307::$const ;//クラス定数を読み込み
			$num = $count-1 ;
			$id = get_the_ID() ;
			$title = get_post($id)->post_title ;
			$lat = get_post_meta($id, 'latitude', true);//緯度
			$lon = get_post_meta($id, 'longitude', true);//経度
			$array[] = [$id, $lat, $lon, $num, $title];//多次元配列に要素を追加
			code40307::$const = $array ;//クラス定数へ書き込み
	//HTML記述
			?><a class="<?php
				echo $par2->id ;
				echo ' ' ;
				echo 'tag' ;
			?>"href="<?php
				echo get_permalink();
			?>" onmouseover="<?php
				echo 'popupOn2('.$num.');' ;
			?>"><?php
				the_title() ;
				echo "<br>\n" ;
			?></a><?php
					
		}//endwhile
	}//endif

//事物表示
	//クラス定数の呼び出し
	$map_marker_json = json_encode(code40307::$const);
	//地図エリアの設定
	?>
	<body>
    	<div id="map_2" style="height: 400px;"></div>
	</body>

<script>
//背景地図
	var osm = new L.tileLayer
	('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    	maxZoom: 19,
    	attribution: "Map data © <a href='https://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap</a> contributors"
	});	
	var map_2 = L.map('map_2', {
		layers: [osm],	
		center: [35.664897,139.776624],
		zoom: 15,
    	zoomControl: true
		});

//マーカー表示	
	var array = JSON.parse('<?php echo $map_marker_json; ?>');
	var addmarker2=[];
	var i = 0
	//ループ
	array.forEach(function(id){
    	addmarker2[i]=L.marker([id[1],id[2]]).addTo(map_2).bindPopup(id[4]);
		i++;
	});//endeach

//ポップアップを開く関数
	function popupOn2(id){
		addmarker2[id].openPopup();
	}	
	
</script>
上記コードの実行結果
築地(西仲通り商店街)明治時代の埋め立て工事により出来上がった町。

事例3:MVCモデルにLeafletを組み込む

事例の概要

  • 事例2で示したコードは、①WordPressのサブクエリー・サブループによるテキスト表示、②HTMLによる背景地図の表示、③Leaflet.jsによる事物の描画を順に行うものでした。
  • 本事例では、コードの再利用性を高めることを目的に、①②③をそれぞれ別のClassに記述します。

コード例

//外部からLeafletを操作する(オブジエクト指向MVCモデル)
class code40309
{

static public $const = array() ;//クラス定数を定義
	
	public function __construct()
	{
		$args = array(
			'model' => '37694',
			'view' => '40309',
			'pattern_m' => 'Sour',
			'entity_from' => 'Term',
			'entity_to' => 'Post',
			'post_type' => 'post',
			'orand' => 'and',			
			'tax' => array('region','genre'),//地域、ジャンル
			'field_value' => array('9809','10274'),	//台東区、商店街		
		);
		$user = new Controller37694($args) ;
	
		$user = new View40309Map() ;
		
		$user = new View40309Mapmarker() ;
			
	}
}

//表示を行うクラス(View)
class View40309
{
	public function __construct($par)
	{
		$array2 = code40309::$const ;//クラス定数を読み込み
		$num = $par->num ;
		$num = $num-1 ;
		$id = get_the_ID() ;
		$title = get_post($id)->post_title ;
		$lat = get_post_meta($id, 'latitude', true);//緯度
		$lon = get_post_meta($id, 'longitude', true);//経度
		$array2[] = [$id, $lat, $lon, $num, $title];//多次元配列に要素を追加
		code40309::$const = $array2 ;//クラス定数へ書き込み
				
		?><a class="<?php
			echo $par2->id ;
			echo ' ' ;
			echo 'tag' ;
		?>"href="<?php
			echo get_permalink();
		?>" onmouseover="<?php
			echo 'popupOn('.$num.');' ;
		?>"><?php	
			the_title() ;
			echo "<br>\n" ;
		?></a><?php

	}//endfunction
}//endclass


//背景地図を表示するクラス
class View40309Map
{
	public function __construct()
	{
?>
	<body>
    	<div id="map_3" style="height: 400px;"></div>
	</body>

<script>
	var osm = new L.tileLayer
	('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    	maxZoom: 19,
    	attribution: "Map data © <a href='https://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap</a> contributors"
	});
	
	var map_3 = L.map('map_3', {
		//layers: [osm,old1],
		layers: [osm],	
		center: [35.712364,139.787258],
		zoom: 14,
    	zoomControl: true
		});
</script>

<?php
	}//endfunction
}//endclass

//マーカーを表示するクラス
class View40309Mapmarker
{
	public function __construct()
	{
		$map_marker_json2 = json_encode(code40309::$const);
		?>
<script>
		var array = JSON.parse('<?php echo $map_marker_json2; ?>');
		var addmarker=[];
		var i = 0
		array.forEach(function(id){
    		addmarker[i]=L.marker([id[1],id[2]]).addTo(map_3).bindPopup(id[4]);
			i++;
		});//endeach

  //ポップアップを開く関数
  function popupOn(id){
    addmarker[id].openPopup();
  }

</script>
<?php
	}//endfunction
}//endclass

上記コードの実行結果

浅草橋(おかず横丁)昔ながらの商店街。重厚な看板建築。
上野(アメ横センター地下食品街)日本の中の異国。
浅草(浅草地下街)700円の理髪店。昭和の匂いの残る地下街。
入谷~吉原(せんわ通り)美しい柳並木。水道尻。
入谷~吉原(金美館通り)映画館の名前の通りです。

ER図活用によるWebサイトの全体デザイン

ER図

WordPressの投稿タイプやタクソノミーを理解しようとするとき、ER図を書いてみると、視覚的に理解しやすくなります。

データの集合をエンティティと呼びます。下図は、3つのエンティティ(ブログ投稿、市区町村、ジャンル)をデータの実例付きで図示したものです。
 ER図では、主キーと外部キーを記述します。主キーは、図056の最左端のデータ項目で、エンティティのレコードを識別します。表の右端にある「市区町村ID」「ジャンルID」は、それ自身が別のエンティティの主キーとなり得るデータ項目で、外部キーと呼ばれます。 一つのエンティティに主キーは必ず一つですが、外部キーは複数持つことができます。図では、ブログ投稿は二つの外部キーを持つことによって、「ジャンル」と「市区町村」2つのエンティティを関連を持っています。
 また、「市区町村」の事例は、外部キーが自身の主キーと結びつく「親子関係」のエンティティの事例です。

ブログ投稿と市区町村の関係は、1:N

・1つのブログ投稿に対し1つの市区町村が関連。
・その市区町村は別のブログ投稿とも関連。

ブログ投稿とジャンルの関係は、N:N

・ジャンルは、1つのブログ投稿に対し複数設定可能。
(例)
西仲通り商店街は、「商店街」と「路地」に関連

市区町村は親子ループ(1:N)を持つ

・1つの親は1つまたは複数の子を持つ。
・子に対し、親は1つ。
・同一エンティティの中で主キーと外部キーが結びつく(親子関係)。

主キーと外部キー

上記のER図の主キーと外部キーのみを表記すると下図のようになります。主キーと外部キーに注目すると、下記4パターンに集約されます。
ⓐDestinationパターン
ⓑSourceパターン(MetaQuery、TaxQuery)
ⓒAncestorsパターン(現世代→先祖)
ⓓDescendantsパターン(現世代→子孫)

WEBサイトの要件をER図に書き表す

Webサイトを開発する前に全体のデザイン(設計)をすることが必要です。まず、エンティティを抽出し、それらの関連づけを行うための主キー、外部キーはを決めることが重要です。

下図は当サイトの場合のER図の事例です。WordPressは投稿タイプとタクソノミーの2種類がありますので、どちらにするかも最初にするかを決めておく必要があります。

WordPressの外部キー

エンティティ同士の関連には、
 ❶投稿タイプとタクソノミーの関連づけ
 ❷投稿タイプのカスタムフィールドによる関連づけ
 ❸parentフィールドによる親子関係の関連づけ
の3種類があります。

参考文献

参考記事

オブジェクト指向によるWordPressへのMVCモデル適用

WordPressはイベント駆動型モデルであると言われています。これは、URLを指定するだけで自動的にデータを取得(メインクエリー)し、自動的にテンプレートファイルを選択して画面表示(メインループ)するものです。

しかし、カスタム投稿タイプやカスタムタクソノミーを使ったWebアプリケーション開発に重きを置く場合は、サブクエリーを多用する場面が増えてきます。

WordPressには、サブクエリーを効率よく開発するためのモデルがありません。

今回は、サブクエリーを効率よく開発するために、MVCモデルを適用することについて解説します。

MVCモデルは、Modelクラス、Viewクラスにコードを集約し、オブジェックト指向の継承やオーバーライドを使って、類似のコードを抽象化することによって、コーディングの作業を軽減することができます。

次にオブジェクト指向でないコード(従来の書き方)とMVCモデルを使ったオブジェクト指向のコードを比較してみることにします。

オブジェクト指向でないコード

//サブクエリー
	 $args = array(		
 //条件の記述
	 );
 //WP_Query
	 $the_query = new WP_Query($args) ;

//サブループ
	 if($the_query->have_posts()){
	   While($the_query->have_posts()){
		   $the_query->the_post();
		     //表示の記述
		     the_title() ;
	       echo "<br>\n" ;	
	   }
	 }//endif

オブジェクト指向のコード(MVCモデル)

class Controller
{
 public function __construct($var){
	   $par =(object)$var;
	   $user = new Model($args);
   または
   $user = new ViewPost() ;
   $user->format();
 }
}

class Model
{
	public function __construct($var)
	{
	
//サブクエリー
		$args = array(		
  //条件の記述
		);
  //WP_Query
		$the_query = new WP_Query($args) ;

//サブループ
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
					//Viewクラスの呼び出し
					$user = new ViewPost() ;
                                 $user->format();
			}
		}//endif
	}//endfunction
}//endclass

class View
{
public function __format()	

	}//endfunction
}//endclass

class ViewPost extends View
{
public function __format()
			//表示
			the_title() ;
			echo "<br>\n" ;		
	}//endfunction
}//endclass
//呼び出す側 
$args = arry(
//条件の記述
);
$user  = new Controller($args);

サブクエリー(WP_Query)とサブループは、書き方のパータンがたくさんあり、すべてのパターンを覚えるのは大変なことです。そのため、書くたびにコードディングミスが起こり、完成するまでに時間がかかります。当然のことながら、これをメンテする作業も大変です。

これに対し、オブジェクト指向で書かれたコードは、呼び出す側は、フィルタリング条件を記述してクラスを呼び出すだけで、サブクエリー~サブループ~表示までの処理が完了します。
 もちろん、呼び出される側のクラスとして、Controllerクラス、Modelクラス、Viewクラスがあり、これらのコードを合わせると、オブジェクト指向を使った場合の方がコードの量は格段に増えます。しかし、これらのクラスは、再利用することを前提に作成していますので、次回からは、呼び出す側の記述のみで済みます。
 また、クラスには、スーパークラス(親クラス)の機能を継承して、差分の部分のみをサブクラス(子クラス)に記述することができ、メンテの効率が向上します。

参考文献

参考記事

WordPressの基本構造の概念図

WordPressの基本の理解で最も重要なことは、構造の理解です。理解するためには、図で示すことが最も近道です。
WordPressは、クエリーとループから成り立っています。

クエリー:データの検索
ループ:データの表示

WordPressの入門時に一番初めに理解すべきことは、メインクエリーとメインループですが、メインクエリーは「WordPressコア」と呼ばれる基本部分に包含されていて、通常はカスタマイズできないということです。(メインクエリーをカスタマイズするには、「フック」という特別なカスタマイズ方法を用います。)

WordPressの基本構造の概念図

WordPressのカスタマイズを理解の第一歩は、テーマの中にあるメインループを見つけ出し、ループの中の記述を自分の好みに合うようにカスタマイズし、実感をつかむことです。

<?php 
if ( have_posts() ) {
	while ( have_posts() ) {
		the_post(); 
		//
		// この部分が記述(カスタマイズ)部分
		//
	} // end while
} // end if
?>

上記のコードのif ( have_posts() )から} // end ifまでがメインループの記述で、その内側の部分がカスタマイズ部分で、ここに、たとえば、the_title();と書けば、投稿のタイトルが表示され、the_content();と書けば、投稿の本文が表示されるわけです。

<?php 
if ( have_posts() ) {
	while ( have_posts() ) {
		the_post(); 
		//記述(カスタマイズ)部分
          the_title();
          the_content();
		//
	} // end while
} // end if
?>

もう一つ重要なポイントは、このメインループが実行される手前の段階で、「WordPressコア」の中のメインクエリーが、既に実行を完了しており、その結果がオブジェクトと呼ばれるデータの塊に保持されているということです。この塊から具体的なデータを抜き出す命令が、the_title();the_content();です。このとき、データは複数件あるので、これをメインループで回して表示しています。

WordPressのカスタマイズで頻繁に出てくるサブループについては、上記の概念図に併記すると理解が深まります。
メインクエリーが「WordPressコア」の中にあって、自動的に実行されるものであるのに対し、サブクエリーは、自分でコードを書く(カスタマイズする)ことが必要ですが、行っている処理は、メインクエリーと同じです。(両方ともWP_Queryが実行されている同じ処理。)

サブクエリーの結果は、オブジェクトに出力され、それを表示するのがサブループです。メインループとサブループの書き方は、ほぼ同じです。

上記の概念図では、左から右へ「クエリー」「ループ」「表示」と情報が転送され、全体としては、上から下へ「メイン」「サブ」と処理が進んでいくことを図示しています。

参考文献

参考記事

WP_Queryのカスタマイズ事例(4)万能型サブクエリー

これまで、WP_Queryのカスタマイズ事例※1※2※3を示してきましたが、今回は、このうちのDestinationパターン※1とSourceパターン※2の事例を統合した万能型サブクエリーについて解説します。

参考文献

参考記事

※1WP_Queryのカスタマイズ事例(2)Sourceパターン( meta_queryとtax_query)※2WP_Queryのカスタマイズ事例(1)Destinationパターン

コード例

事例1:万能型カスタムWP_Query

呼び出す側

$args = array(
	'model' => '37694',
	'view' => '37694',
	'pattern_m' => 'Sour',
	'entity_from' => 'Term',
	'entity_to' => 'Post',
	'post_type' => 'post',
	'tax' => array('region','genre'),//タクソノミー名:地域、ジャンル
	'field_value' => array('9790','10274'),	//タクソノミーの値:中央区、商店街		
);
$user = new Controller37694($args) ;

Controllerクラス

class Controller37694
{	
	
	public function __construct($args)
	{
//////配列をオブジェクトに変換
		$par =(object)$args;
//////Modelメソッドの呼び出し
			$model_name = 'Model'.$par->model ;	
			$model_obj = new $model_name($par) ;
	}//endfunction
}//endclass

Modelクラス

class Model37694
{
	public function __construct($par)
	{
//参照パターン毎に$argsの値を設定するため、分岐させるための$args_nameの値を設定。

		$args_name = $par->pattern_m.$par->entity_from.$par->entity_to ;
		if ($args_name == 'SourTermPost'){

			$query_name = 'tax_query' ;
		}elseif($args_name == 'SourPostPost'){
			$query_name = 'meta_query' ;		
		}
			$args = array(
				'order' => $par->order,
				'orderby' => $par->orderby,
				'include' => $par->foreign_key,//タクソノミー用DPT
				'hide_empty' => false,//Listのとき要DPT
    			'meta_key' => $par->meta_key,//DPP
				'post_type' => $par->post_type,//DPP
				'post__in' => $par->foreign_key,//DPP
				'posts_per_page' => -1,//全行表示DPP
				$query_name => array(
				'relation'  => $par->orand ,
					array(
						'taxonomy' => $par->tax[0],
						'field' => 'term_id',//STP
						'terms' => $par->field_value[0],//STP
						'key' => $par->field[0],//SPP
						'value' => $par->field_value[0],//SPP
					),
					array(
						'taxonomy' => $par->tax[1],
						'field' => 'term_id',//STP
						'terms' => $par->field_value[1],//STP
						'key' => $par->field[1],//SPP
						'value' => $par->field_value[1],//SPP
					)
				)
			);

		if ($args_name == 'DestPostTerm'){
			$the_query = get_terms($par->tax, $args);			
		}else{
			$the_query = new WP_Query($args) ;
		}

		
////////////////////表示ループ
//Viewクラスのクラス名を設定
	$view_name = 'View' . $par->view;
	$num = 0 ;
		
//表示するエンティティがpostの場合
	if ($par->entity_to == 'Post'){
//while文でのループ処理
		if ( $the_query->have_posts() ) {
			while ( $the_query->have_posts() ) {
				$the_query->the_post();
					$num = $loopcounter++ +1;
					if ($num == '1' && !empty($par->title)){

						echo '<h2>' . $par->title . '</h2>' ;//タイトルを表示
 					}
//カウントアップした番号$numをオブジェクト$parに設定
					$par->num = $num ;
				
//Viewオブジェクトをインスタンス化
					$view_obj = new $view_name($par);				
			}// end while
			wp_reset_postdata();
		}//end if
		
//表示するエンティティがtermの場合
	}elseif ($par->entity_to == 'Term'){
		echo '<h2>' . $par->title . '</h2>' ;

//foreach文でのループ処理
		foreach ($the_query as $term){
		$num = $loopcounter++ +1;
//カウントアップした番号$numと表示するオブジェクト$termをオブジェクト$parに設定
			$par->term = $term ;

//Viewオブジェクトをインスタンス化
			$view_obj = new $view_name($par);
		}//endforeach

	}else{
	}//endif
	}//endfunction

}//endclass

Viewクラス

class View37694
{
	public function __construct($par)
	{
		the_title() ;
		echo "<br>\n" ;	
	}//endfunction
}//endclass
築地(西仲通り商店街)明治時代の埋め立て工事により出来上がった町。

WP_Queryのカスタマイズ事例(3)親子( 先祖・子孫)クエリー。

カスタム投稿タイプの先祖の表示。

前回※1 「投稿のカスタムフィールドに関連付けられた投稿の表示」で、ブログ記事に文献の情報を関連付ける事例を紹介しました。(実際の画面サンプルはこちらです。)

この例では、「第八章 月島の商業」が関連付けられていますが、この上の階層である「第三編 明治以降の月島」と最上位階層である書籍名の「月島発展史」を併せて表示しています。

カスタム投稿タイプ「参考文献」は、親子関係を持った木(ツリー)構造になっていて、最初に関連付けされた「第八章 月島の商業」をキーに、祖先(父母→祖父母)の階層を表示しています。

リスト37639は、カスタム投稿タイプの祖先を表示するコードです。

カスタム投稿タイプの子孫の表示。

カスタム投稿タイプ「参考文献」の全体を一覧表示する場合は、階層のトップのIDを指定し、それをキーに子孫の階層を上から順番に検索して表示します。(実際の画面サンプルはこちらです。)

リスト37639は、投稿の子孫を表示するコードです。WordPressのテンプレートタグ「get posts」を使って子孫を検索しています。 

タクソノミーの祖先と子孫の表示

木(ツリー)構造を持つタクソノミーの全体を表示する事例を紹介します。(実際の画面サンプルはこちらです。)

たとえば「中央区」を選択した場合、祖先に東京都、子孫に月島3丁目があります。これらの表示をクリックするとどちらにでも移動できるようにすると便利です。また、自分が現在どの階層にいるかも解りやすくなります。

リスト36732は、タクソノミーの祖先と子孫の両方を表示する事例です。現世代の「中央区」を指定すると、まずその先祖を表示し、次に子孫を表示します。

参考文献

参考記事

コード例

事例1:カスタム投稿の先祖を表示

呼び出す側

$par2->gen_id = '18661';
$par2->post_type = 'reference' ;
$user = new Model37639() ;
    $user->generation($par2) ;

呼び出される側(クラス)

class Model37639 extends WP_Query
{
	public function generation($par2)
	{
		$ance = array() ;
		$ance = get_ancestors($par2->gen_id, $par2->post_type) ;
		//$cnt = count($ance);
		$ance = array_reverse($ance) ;
		$k = 0 ;
		While ( !empty($ance[$k])) {
			$par2->id = $ance[$k] ;
			$par2->k = $k  ;
			$View_obj = new View37639a($par2) ;
			$k = $k +1 ;
		}//endwhile
	}//endfunction

}//endclass

class View37639a
{
	public function __construct($par2)
	{
		$postslist = get_post($par2->id) ;
 		setup_postdata($postslist);
		echo $postslist->post_title."<br>\n" ;
		
	}//endfunction
}//endclass

Warning: Creating default object from empty value in /home/xs663544/kokontouzai.jp/public_html/wp-content/plugins/wp-OOP/wp-OOP-CodeSample.php on line 508

ID: 18661
先祖
k=0 18444月島発展史
k=1 18665第三編 明治以後の月島
現世代
k=2 18661第八章 月島の商業

事例2:カスタム投稿の子孫を表示

呼び出す側

$par2->gen_id = '18444';
$par2->post_type = 'reference' ;
echo "<br>\n".'ID: '.$par2->gen_id."<br>\n" ;
$user = new Model37642() ;
    $user->generation($par2) ;

呼び出される側(クラス)

class Model37642 extends WP_Query
{
	public function __construct()
	{
//コンストラクタは、なぜ今回使わないのか。
	}//endfunction
	
	public function generation($par2)
	{

//現世代を表示
		echo '現世代'."<br>\n" ;
		$par2->id = $par2->gen_id ;
		$par2->k = 0 ;
		$View_obj = new View37642a($par2) ;
		
//子孫を表示
		echo '子孫'."<br>\n" ;
		$this->children($par2) ;		
	}
	
	public function children($par2)
	{
//抽出処理
		$k = $par2->k ;	
		$args = array(
			'post_type' => $par2->post_type ,			
			'post_parent' => $par2->id ,
			'orderby' => 'menu_order',
			'order'   => 'ASC',
		);
		$the_query = get_posts($args) ;
		if(empty($the_query)){
			return ;
		}
//ループ処理
		$k = $k +1 ;
		foreach($the_query as $query){
			$par2->id = $query->ID ;
			$par2->k = $k ;			
			$View_obj = new View37642a($par2) ;
			$this->children($par2) ;//再帰処理。
		}
		
	}//endfunction
}//endclass

class View37642a
{
	public function __construct($par2)
	{
		$postslist = get_post($par2->id) ;
 		setup_postdata($postslist);
		echo 'k='.$par2->k.' '.$par2->id ;
		echo $postslist->post_title."<br>\n" ;
		
	}//endfunction
}//endclass

Warning: Creating default object from empty value in /home/xs663544/kokontouzai.jp/public_html/wp-content/plugins/wp-OOP/wp-OOP-CodeSample.php on line 433

ID: 18444
現世代
k=0 18444月島発展史
子孫
k=1 18669第二編 江戶時代の月島
k=2 18675第一章 石川島佃島の塡築
k=1 18665第三編 明治以後の月島
k=2 18445第二章 月島、新佃島の填築
k=2 18661第八章 月島の商業

事例3:タクソノミーの先祖と子孫を同時表示

呼び出す側

$par2->gen_id = '9790';
$par2->entity_name = 'region' ;
echo "<br>\n".'ID: '.$par2->gen_id."<br>\n" ;
$user = new Model36732() ;
    $user->generation($par2) ;

呼び出される側(クラス)

class Model36732//計算するクラス。
{
	public function __construct()
	{
//コンストラクタは、なぜ今回使わないのか。
	}//endfunction
	
	public function generation($par2)
	{
		$ance = array() ;
		$ance = get_ancestors($par2->gen_id, $par2->entity_name) ;
		//$cnt = count($ance);
		$ance = array_reverse($ance) ;

//////先祖が存在しない場合、$anceは中身は空なので、次の処理へ進む。
//先祖を表示。
echo '先祖'."<br>\n" ;
		$k = 0 ;
		While ( !empty($ance[$k])) {
			$par2->id = $ance[$k] ;
			$par2->k = $k ;
			$View_obj = new View36732a($par2) ;
			$k = $k +1 ;
		}//endwhile

//現世代を表示
echo '現世代'."<br>\n" ;
		$par2->id = $par2->gen_id ;
		$par2->k = $k ;
		$View_obj = new View36732a($par2) ;
		
//子孫を表示
echo '子孫'."<br>\n" ;
		$this->children($par2) ;		
	}
	
	public function children($par2)
	{
//抽出処理
		$k = $par2->k ;	
		$args = array(
			'parent' => $par2->id ,	
		);
		$the_query = get_terms($par2->entity_name, $args) ;
		if(empty($the_query)){	
			return ;
		}
//ループ処理
		$k = $k +1 ;
		foreach($the_query as $term){
			$par2->id = $term->term_id ;
			$par2->term = $term ;//$par2に追加。
			$par2->k = $k ;//$par2に追加。
			$View_obj = new View36732b($par2) ;
			$this->children($par2) ;//再帰処理。
		}
		
	}//endfunction
}//endclass

class View36732a//表示するクラス。
{
	public function __construct($par2)
	{
		$term = get_term($par2->id , $par2->entity_name ) ;
		echo 'k='.$par2->k.' '.$par2->id ;
		echo $term->name."<br>\n" ;
	}//endfunction

}//endclass

class View36732b//表示するクラス。
{
	public function __construct($par2)
	{
		echo 'k='.$par2->k.' '.$par2->id ;
		echo $par2->term->name."<br>\n" ;
	}//endfunction

}//endclass

Warning: Creating default object from empty value in /home/xs663544/kokontouzai.jp/public_html/wp-content/plugins/wp-OOP/wp-OOP-CodeSample.php on line 564

ID: 9790
先祖
k=0 7079全国
k=1 2740東京都
現世代
k=2 9790中央区
子孫
k=3 12370日本橋室町3丁目
k=3 12404日本橋室町1丁目
k=3 12405日本橋富沢町
k=3 12406日本橋大伝馬町
k=3 10164日本橋中洲
k=3 10160日本橋人形町二丁目
k=3 2751日本橋人形町一丁目
k=3 10163日本橋人形町三丁目
k=3 10161日本橋箱崎町
k=3 10162日本橋小網町
k=3 9907日本橋本町一丁目
k=3 10076日本橋本町四丁目
k=3 2748八丁堀三丁目
k=3 9903八重洲一丁目
k=3 9908八重洲二丁目
k=3 2750京橋三丁目
k=3 7442八丁堀二丁目
k=3 2747銀座二丁目
k=3 10061銀座三丁目
k=3 10062銀座四丁目
k=3 10063銀座五丁目
k=3 10064銀座六丁目
k=3 10059銀座七丁目
k=3 10058銀座八丁目
k=3 2749新富1丁目
k=3 9788築地2丁目
k=3 10508築地7丁目
k=3 2752新川1丁目
k=3 10509新川2丁目
k=3 12355日本橋室町2丁目
k=3 9880佃1丁目
k=3 9789月島3丁目

WP_Queryのカスタマイズ事例(2)Sourceパターン( meta_queryとtax_query)

リスト37167は、meta_queryの事例。
リスト37179は、tax_queryの事例です。

参考文献

参考記事

この記事を参照している記事

WP_Queryのカスタマイズ事例(4)万能型サブクエリー
WP_Queryのカスタマイズ事例(1)Destinationパターン

コード例

事例1:Sourceパターン(Post→Post) meta_query

class code37167
{
	public function __construct()
	{
		$args = array(
			'model' => '37167',
			'view' => '37167',
			'post_type' => 'post',
			'field' => array('ref'),//参考文献
			'field_value' => array('18661'),//第八章 月島の商業
		);
		$user = new Controller37167($args) ;
	}//endfunction
}//endclass

class Controller37167
{	
	
	public function __construct($args)
	{
//////配列をオブジェクトに変換
		$par =(object)$args;
//////Modelメソッドの呼び出し
			$model_name = 'Model'.$par->model ;	
			$model_obj = new $model_name($par) ;
	}//endfunction
}//endclass

class Model37167
{
	public function __construct($par)
	{
		$args = array(		
			'post_type' => $par->post_type,
			'meta_query' => array(
			'relation' => 'OR',
				array(
					'key' => $par->field[0],
					'value' => $par->field_value[0],
				)
			)
		);
		$the_query = new WP_Query($args) ;

//ループ~表示処理(Viewクラス)の呼び出し。
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
					$view_name = 'View'.$par->view ;
					$view_obj = new $view_name($par) ;
			}
		}//endif
	}//endfunction

}//endclass

class View37167
{
	public function __construct($par)
	{
		the_title() ;
		echo "<br>\n" ;
	}//endfunction
}//endclass
築地(和風スナック)沢の鶴の看板。月島三丁目。
築地(西仲通り商店街)明治時代の埋め立て工事により出来上がった町。

事例2:Sourceパターン(Term→Post) tax_query

class code37179
{
	public function __construct()
	{
		$args = array(
			'model' => '37179',
			'view' => '37179',
			'tax' => array('region','genre'),//タクソノミー名:地域、ジャンル
			'field_value' => array('9790','10274'),	//タクソノミーの値:中央区、商店街		
			'post_type' => 'post',//投稿タイプ:ブログ記事
		);
		$user = new Controller37179($args) ;
	}//endfunction
}//endclass

class Controller37179
{	
	public function __construct($args)
	{
//////配列をオブジェクトに変換
		$par =(object)$args;
//////Modelクラスの呼び出し
		$model_name = 'Model'.$par->model ;	
		$model_obj = new $model_name($par) ;
	}//endfunction
}//endclass

class Model37179//投稿を表示
{
	public function __construct($par)
	{

		$args = array(		
			'post_type' => $par->post_type,
			'tax_query' => array(
			'relation' => 'OR',
				array(
					'taxonomy' => $par->tax[0],				
					'field' => 'term_id',
					'terms' => $par->field_value[0],
				),
				array(
					'taxonomy' => $par->tax[1],				
					'field' => 'term_id',
					'terms' => $par->field_value[1],
				)
			)
		);
		$the_query = new WP_Query($args) ;

//ループ~表示処理(Viewクラス)の呼び出し。
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
					$view_name = 'View'.$par->view ;
					$view_obj = new $view_name($par) ;
			}
		}//endif
	}//endfunction
}//endclass


class View37179
{
	public function __construct($par)
	{
		the_title() ;
		echo "<br>\n" ;
	}//endfunction
}//endclass
人形町(日本橋大伝馬町の路地)江戸の下水道が現代に引き継がれています。
人形町(問屋橋跡北側の路地)日本橋富沢町。浜町川跡の商店街。
人形町(真砂座の碑)明治39年、夏目漱石「猫」上演。
日本橋(てんぷら天松)昭和11年創業。
日本橋(清水理美容院)理容室と美容院。
日本橋(十軒店跡の碑)江戸時代の仮設専門店街。人形市。
日本橋(浮世小路)浮世ショウジ。落語「百川」の舞台。
茂原(榎町商店街)カラフルな看板建築建物群。
浅草橋(おかず横丁)昔ながらの商店街。重厚な看板建築。
川崎南町(名画通り)路地にまっすぐに伸びる側溝。
日立(日立銀座通りの写真)駅構内の写真展。
長崎丸山(銅座市場跡)現在は取り壊されています。
板橋(坂下マーケット)ゲートだけが残っています。
板橋(トンネルマーケット)立喰いそば屋脇のトンネル。
成増(成増マーケット)すずらん通りの昭和の空間。
町田(仲見世商店街)西のアメ横とよばれています。
船橋(仲通り商店会)Y字路の商店街。
上野(アメ横センター地下食品街)日本の中の異国。
銀座(名店「三州屋銀座店」)1968年創業の老舗割烹。
銀座(金春小路)かつては置屋や待合が並ぶ花街。
銀座(路地の中の自動ドア)通り抜けできます。
銀座(豊岩稲荷)130年以上前の銀座煉瓦街時代の名残。
銀座(三愛ビル)1963年開業の銀座のランドマーク。
銀座(出世地蔵尊)昭和27年のキャバレー「美松」の火事で移転。
銀座(キャバレー美松跡地)現在の三越百貨店新館がある場所。
銀座(三原小路隣の袋小路)2階建ての長屋形式の店舗。
日本橋(老舗カレー店)開業50周年
日本橋(鳥萬)戦前の建物。4階建てのように見える3階建て。
日本橋(大勝軒)昭和32年の建築。緑のタイル。
日本橋(老舗割烹「嶋村」)嘉永3年(1850年)創業。金ぷら
日本橋(アダルトグッズ店)TENGAあります。
日本橋(理容室跡)木々が生い茂る中のサインポール。
日本橋(雀荘)オフィス街の中に10軒近く。
日本橋(花街跡)横丁や路地に遊興の歴史。
小岩(駅裏の商店街)小さな小島のような一画。
王子(いなり通り)かつて花街があった場所の商店街。
人形町(小春軒)山県有朋のお抱え料理人が創業。
人形町(金刀比羅宮)芳町芸妓組合、新田新作が寄進。
人形町(浜田家)芳町唯一の料亭
人形町(思案橋)吉原へ行こうか、芝居に行こうか。
人形町(桃乳舎)芸術的な看板建築。桃のマーク。
人形町(高尾稲荷社)高尾大夫の霊を祭っている稲荷神社。
人形町(キラク)1951年開業。年季の入った看板と暖簾。
人形町(歯科医院のゴミ箱)特注の備え付けタイプ。
人形町(㐂寿司)かつての花街の記憶が残る建物。
人形町(よし梅本店)戦火を免れて残った店。
大塚(三業通り)看板がリニューアル。芸者さんのモニュメント。
築地(日の出湯)佃小橋から見える煙突付きマンション。
築地(和風スナック)沢の鶴の看板。月島三丁目。
築地(西仲通り商店街)明治時代の埋め立て工事により出来上がった町。
築地(旅館大宗)純和風。周囲は、高層ビルが建ちち並びます。
築地(看板建築)3階建て。正面から見ると2階建て。
築地(築地場外市場)寺院の建物と市場の建物がつながっています。
築地(天婦ら「おかめ」)昭和初期からある料理屋です。
亀戸(亀七通り商店街)大看板。両側にゲート。
福富町(長者町八丁目共同ビル)マッサージ店の看板。
福富町(福仲ビル)商店街共同建築。2階と3階は居住部分。
天王町(横浜洪福寺松原商店街)朝獲れの鯖。
磯子(浜マーケット)戦後の闇市が発展してできました。
磯子(丸山市場)美空ひばりの生家の近く。
新川(於岩稲荷田宮神社)花柳界や歌舞伎関係者が参詣。
新川(新川大神宮)酒問屋が信仰。待合と芸妓屋が集中していた場所。
新川(料理屋「増田や」跡)現在は居酒屋チェーンの店舗。
丸の内(長者町繊維街)看板が連なります。
荒木町(車力門通り)荒木町三業地の入口。
藤岡(割烹料理屋「花月」)仲町の通り。料理屋が建ち並ぶ一画。
相模原(タンクトップ)西門商店街。日用品の店舗。
武蔵小杉(センターロード小杉)超ミニスカスッチー。
門前仲町(共同ビル南側)3階建ての長屋建築。清住庭園東側。
新富町(正金アパート)昭和の初期からあるアパート。
新富町(路地)昔ながらの路地。飲食店の看板。
新富町(花街跡)新富座の開業とともに芸妓、置屋が増加。
新富町(新島原遊廓跡地)外国人のための遊廓。
巣鴨(地蔵通り商店街)巣鴨名物「お地蔵様の赤パン」。
麻布(元麻布の長屋)高層マンションとのアンバランスな対比。
吉祥寺(のれん小路)かつては小さな飲み屋が連なっていた横丁。
吉祥寺(ハモニカ横丁)終戦直後の闇市の姿。
日暮里(繊維問屋街)コスプレ人気で活況を呈しています。
高山(末広二番街)花岡遊廓跡地の東側。
浅草(浅草地下街)700円の理髪店。昭和の匂いの残る地下街。
長崎丸山(銅座市場)通り抜けられません。
戸部(岩亀横丁)「がんき」の屋号を持つ寿司屋、サウナ。
南千住(三ノ輪商店街)荒川区随一の大商店街。
日本橋(理髪店)昭和5年築の看板建築。モダンなデザイン。
日本橋(麻雀クラブ富士)昭和25年頃は「パチンコ富士」でした。
日本橋(八重洲の飲み屋街)八重洲のあの日。
日本橋(ビデオボックス)都会の真ん中に密集。
京橋(雀荘)幻想的な水色の建物。モダンな玄関の部分。
京橋(レトロな商店街)戦前の看板建築がひっそりと残る一画。
京橋(京橋柳町遊里跡地)吉原の元祖。関が原の合戦後。
京橋(江戸歌舞伎発祥の地)江戸三座。猿若中村座。
白山(仲通り商店街)かつての銘酒屋があったあたり。
仙台(壱弐参横丁)戦後の公設中央市場が原形。
根津(牛乳店と貸本屋)ホモちゃんマーク。牛乳の看板。
赤羽(明店街)「通りぬけ」の看板。ミルクホール。
銀座(8丁目並木通り近く)銀座の柳にピンクビラ。
銀座(シネパトス)地下街にあるアダルトショップ
銀座(金春湯)文久3年開業の歴史ある銭湯です。
銀座(白いバラ)アルサロブ-ムを今に伝える店です。
銀座(東京温泉跡地)元祖トルコ風呂。延べ1,600坪の建物。

WP_Queryのカスタマイズ事例(1)Destinationパターン

今回は、投稿データに関連付けられたタクソノミーや別の投稿を表示する方法について紹介します。

WP_Queryは、あるデータの集合(これをエンティティと呼びます)の外部キーから別のエンティティの主キーを検索しデータ群(オブジェクト)取得する仕組み(クラス)です。
 WordPressの場合のエンティティは、「投稿タイプ」「カスタム投稿」「カテゴリー」「ターム」「カスタムタクソノミー」などのデータの集合です。これらのエンティティ同士は、主キーと外部キーで関連付けられます。

下図は、ブログ投稿の外部キーにカスタムタクソノミー「ジャンル」が関連づけられている場合を図示したものです。

Destinationパターン

リスト37209は、投稿のカスタムフィールドに関連付けられた投稿の表示の事例です。
ブログ記事のような投稿データに、別の投稿データを関連づけて表示したい場合があります。

リスト37211は、投稿に関連付けられたタクソノミーの表示の事例です。
ブログ記事のような投稿データには、タクソノミー(カテゴリー、タグ)を関連づけて記事の分類分けをしますが、このとき、ブログ記事のタイトルの上部や本文の末尾などにタクソノミーを表示したい場合があります。

ブログ投稿(Post)とジャンル(Term)のER図

参考文献

参考記事

※1WP_Queryのカスタマイズ事例(2)Sourceパターン( meta_queryとtax_query)

この記事を参照している記事

WP_Queryのカスタマイズ事例(4)万能型サブクエリー

コード例

事例1:Destinationパターン(Post→Post)

class code37209
{
	public function __construct()
	{	
		$user = new Model37209() ;
	}//endfunction
}//endclass

class Model37209 extends WP_Query
{
	public function __construct()
	{
		$args = array(		
			'post_type' => 'post',
			'post__in' => array('18348'),//IDを配列で指定。
		);
		$the_query = new WP_Query($args) ;		

//ループ~表示処理(Viewクラス)の呼び出し。
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
					$view_obj = new View37209($par) ;
			}
		}//endif
	}//endfunction

}//endclass

class View37209
{
	public function __construct($par)//$parはいらない。
	{
		the_title() ;
		echo "<br>\n" ;
		
//次の処理の準備
//投稿に関連付けられているカスタムフィールドのIDを取得する。
	$myposts = get_post_meta(get_the_ID(), 'ref', false) ;//'ref'を指定。
	if (!empty($myposts)){
		$par->foreign_key = $myposts ;
		$user = new Model37209a($par) ;
	}else{
		return ;
	}
		
	}//endfunction
}//endclass

class Model37209a
{
	public function __construct($par)
	{	
		$args1 = array(
			'post__in' => $par->foreign_key,//配列をそのまま記述
			'post_type' => 'reference',//DPP
		);
		$the_query = new WP_Query($args1) ;//WP_Query	

//ループ~表示処理(Viewクラス)の呼び出し。
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
					$view_obj = new View37209a($par) ;
			}
		}//endif
	}//endfunction

}//endclass

class View37209a
{
	public function __construct($par)
	{

		the_title() ;
		echo "<br>\n" ;
		
	}//endfunction
}//endclass
築地(西仲通り商店街)明治時代の埋め立て工事により出来上がった町。

Warning: Creating default object from empty value in /home/xs663544/kokontouzai.jp/public_html/wp-content/plugins/wp-OOP/wp-OOP-CodeSample.php on line 781
第八章 月島の商業
月島再発見学

事例2:Destinationパターン(Post→Term)

class code37211
{
	public function __construct()
	{	
		$user = new Model37211() ;
	}//endfunction
}//endclass

class Model37211
{
	public function __construct()
	{
		$args = array(		
			'post_type' => 'post',
			'post__in' => array('18348'),//IDを配列で指定。
		);
		$the_query = new WP_Query($args) ;		

//ループ~表示処理(Viewクラス)の呼び出し。
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
					$view_obj = new View37211($par) ;
			}
		}//endif
	}//endfunction

}//endclass

class View37211
{
	public function __construct($par)
	{
		the_title() ;
		echo "<br>\n" ;

//次の処理の準備
//投稿に関連付けられているタクソノミーのIDを取得する。
			$myterms = wp_get_object_terms(get_the_ID(), 'region');
			if (!empty($myterms)){
				$foreign_key = array() ;
				foreach ($myterms as $post){
					array_push( $foreign_key , $post->term_id);
				}
			}else{
				return ;
			}//endif		
		
		$par->foreign_key = $foreign_key ;
		$user = new Model37211a($par) ;
		
	}//endfunction
}//endclass

class Model37211a
{
	public function __construct($par)
	{

		$args = array(		
			'include' => $par->foreign_key,
		);
		$the_query = get_terms('region', $args) ;		

//ループ~表示処理(Viewクラス)の呼び出し。
		foreach ($the_query as $term){
			$par->term = $term ;
				$view_obj = new View37211a($par) ;			
		}
	}//endfunction

}//endclass

class View37211a
{
	public function __construct($par)
	{
		echo $par->term->name."<br>\n" ;
		
	}//endfunction
}//endclass
築地(西仲通り商店街)明治時代の埋め立て工事により出来上がった町。

Warning: Creating default object from empty value in /home/xs663544/kokontouzai.jp/public_html/wp-content/plugins/wp-OOP/wp-OOP-CodeSample.php on line 703
月島3丁目

WP_Queryのカスタマイズ

サブクラスにおいてWP_Queryを使うことのメリットは、拡張(継承)してカスタムクラスを作れることです。Rakhitha Nimesh Ratnayake(ラーキサ・ニーメシュ・ラーネヤク)は、その著書「WordPressによるWebアプリケーション開発」の中で、WP_Queryクラスの継承の用例を示しています。*1

リスト37188は、ラーネヤク氏が示した用例を本書のテーマに即してアレンジしたものです。
通常、WP_Queryを使うときは、次のように配列にすべてのフィルタリング条件を記述しなければなりませんが、リスト37188では、Modelクラスの中にこの記述を書いているので、呼び出す側は、1行のコードのみで済みます。

たしかに、同じフィルタリング条件を何度も繰り返し使う場合はこの方法が有効であり、クラスを継承すれば、少し異なる条件の場合も含めて抽象化できるかもしれません。

しかし、あらゆるパターンのサブクエリー(投稿の場合、タームの場合、親子の場合)と表示をすべて網羅的に抽象化するためには、もう一工夫必要です。

リスト36618は、リスト37188をアレンジし、この課題を解決するための方法です。

呼び出す側に、フィルタリング条件を羅列しますが、そこには値を直接記述します。これを受け取ったModelクラスは、その値をWP_Queryのフィルタリング条件にあてはめます。
この方法のメリットは、面倒なWP_Queryの記述から解放されるということです。
さらに、表示するViewクラスの名称なども呼び出す側の条件に加えることにより、サブクエリーから表示までを一貫して抽象化することができそうです。

参考文献

参考記事

※1PHPのコードをパーツ化する方法(2)クラスを使う方法

コード例

事例1:WP_Queryの拡張①Ratnayake氏の方法

呼び出す側

$the_query = new Model37188();
//ループ
if($the_query->have_posts()){
	While($the_query->have_posts()){
		$the_query->the_post();
		//Viewの記述	
		$view_obj = new View37188($par2) ;			
	}
	wp_reset_postdata();
}//endif

Modelクラス

class Model37188 extends WP_Query
{
	public function __construct( $args = array() )
	{
//クエリー	
		$args = wp_parse_args( $args, array(
			'post_type' => 'glossary',
			'meta_query' => array(
			'relation' => 'AND',
				array(
					'key' => 'gloss_type',
					'value' => '9851',
				),
				array(
					'key' => 'region',
					'value' => '9790',
				)
			)
		)
		);
		parent::__construct($args) ;
		
	}
}

Viewクラス

class View37188
{
	public function __construct($par2)
	{
		the_title() ;
		echo "<br>\n" ;	
	}//endfunction
}//endclass

事例2:WP_Queryの拡張②アレンジした方法

呼び出す側

$args = array(
	'post_type' => 'glossary',
	'key' => array('gloss_type','region'),
	'value' => array('9851','9790')	
	);
$query = new Model36618($args);

Modelクラス

class Model36618 extends WP_Query
{
	public function __construct($var)
	{
//配列をオブジエクトに変換。
	$par =(object)$var;
//クエリー	
		$args = array(	
			'post_type' => $par->post_type,
			'meta_query' => array(
			'relation' => 'AND',
				array(
					'key' => $par->key[0],
					'value' => $par->value[0],
				),
				array(
					'key' => $par->key[1],
					'value' => $par->value[1],
				)
			)
		);
		
		$the_query = new WP_Query($args) ;
//ループ
		if($the_query->have_posts()){
			While($the_query->have_posts()){
				$the_query->the_post();
				//Viewの記述	
				$view_obj = new View36618($par2) ;			
			}
			wp_reset_postdata();
		}//endif
		
	}
}

Viewクラス

class View36618
{
	public function __construct($par2)
	{
		the_title() ;
		echo "<br>\n" ;	
	}//endfunction
}//endclass

Leaflet入門

「Leaflet」は、Webサイトに地図を載せる場合に利用するツールです。
「Leaflet」はフリーソフトでありながら、細かなオプションが用意されているのが特徴です。

リスト1 は、背景となる地図(ベース地図)を表示するコードです。
WordPressにLeafletを埋め込む場合は、事前準備として、function.phpに、Leafletを読み込むコードを記述します。

参考文献

参考記事

コード例

事例1:Leaflet入門(背景地図の表示)

function.php

まず、事前準備として、次のコードをfunction.phpに記述します。

function leaflet_enqueue_styles() {
    wp_enqueue_style( 'leaflet-style', '//unpkg.com/leaflet@1.5.1/dist/leaflet.css', NULL, NULL );
}
add_action( 'wp_enqueue_scripts', 'leaflet_enqueue_styles' );
/* 先にスタイルシートを読み込んでからJavaScriptを読み込む */
function leaflet_enqueue_script() {
    wp_enqueue_script( 'leaflet-js', '//unpkg.com/leaflet@1.5.1/dist/leaflet-src.js', NULL, NULL );
}
add_action('wp_enqueue_scripts', 'leaflet_enqueue_script');

テンプレートファイル

次にテンプレートファイルに次のコードを記述します。

<body>
    <div id="map_1" style="height: 400px;"></div>
</body>

<script>
//////背景地図
	var osm = new L.tileLayer
	('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    	maxZoom: 19,
    	attribution: "Map data © <a href='https://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap</a> contributors"
	});
	
	var map_1 = L.map('map_1', {
		layers: [osm],	
		center: [35.717007,139.752772],
		zoom: 18,
    	zoomControl: true
		});
</script>