trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4"><?php
/**
* Plugin Name: つなぐ、ふくし。 ─ 高齢者住宅管理
* Plugin URI: https://goodbyinc.com
* Description: 高齢者住宅・老人ホームのカスタム投稿タイプと全ポータルページテンプレートを提供。Lightningテーマをそのまま維持しながらポータルを運用できます。
* Version: 6.0.0
* Author: つなぐ、ふくし。
* Text Domain: tunagu-fukushi
*/
defined( 'ABSPATH' ) || exit;
define( 'TF_VERSION', '6.0.2' );
define( 'TF_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'TF_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'TF_BASE', 'tunagu-fukushi' );
/* ============================================================
1. カスタム投稿タイプ登録
============================================================ */
/* ============================================================
施設写真マップ(実写真URL)
============================================================ */
function tf_get_facility_photo_url( $title ) {
static $map = [
'ハートワンひたちなか' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/3071/62234/01_7a6f64c6a062ad65e356eff3a2abd1bc.jpg',
'ご長寿くらぶひたちなか佐和' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/2028/61598/08_d346199e877879348997c5db86f14407.jpg',
'ご長寿くらぶ高場' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/2028/43236/05_0415292fd85747831773cef525a9e2f4.jpg',
'ご長寿くらぶ東石川' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/2028/61763/01_247b92687c5f20ec2064e19d1d266bc6.jpg',
'ラ・ナシカひたちなか' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/1013/32145/28_efe9fc95e72188e304308fae9b9d4696.jpg',
'ニチイケアセンターかつた' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/1160/36239/01.jpg',
'らいふアシスト・泉ケ森 本館' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/4719/36048/10_f292dc7c6e34ba20b58f9f14c53d0cfa.jpg',
'らいふアシスト・泉ケ森 ナーシングケアレジデンス' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/4719/36052/13_982111eeebfa82f7b961161498f8345e.jpg',
'ライフアシスト・泉が森' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/4719/36048/10_f292dc7c6e34ba20b58f9f14c53d0cfa.jpg',
'ご長寿くらぶ日立大沼' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/2028/61370/01_afed375ee575da1f32056630c4fb0c87.jpg',
'ひたちの森シニア館' => 'https://d3lqfxv2uj61gi.cloudfront.net/kaigo/facility/2539/46546/01.jpg',
'秋桜の家森山' => 'http://cosmos-fp.com/wp/wp-content/uploads/2024/09/%e7%a7%8b%e6%a1%9c%e3%81%ae%e5%ae%b6%e5%a4%96%e8%a6%b3-scaled.jpg',
'豊浦の郷' => 'https://santoyoura-toyouranosato.com/files/libs/667/202412162142319388.JPG',
'愛の家グループホーム日立' => 'https://img.minnanokaigo.com/shisetsu/73156/pic/20220814035820.jpg',
'ご長寿くらぶひたちなか市外野' => 'https://gotyoujyuclub.com/dist/wp-content/uploads/2024/11/082527cb95f6922d11a96859d69840a8.jpg',
'まごころの家村松' => 'https://www.sagasix.jp/files/upload/facility/102/101915/Detail/facility_101915_651621_thumbnail-h-(493x370).jpg',
'ひまわりハウス諏訪' => 'https://img.youtube.com/vi/cJOKuwlxFyc/hqdefault.jpg',
'常陸東海園' => 'https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/2374093/7d84682c766308f7fd2ce000b9ea8f9e_05f8bdc08f302b8ef4dd47a863f3035b.gif',
'ケアハウス東海' => 'https://cdn.amebaowndme.com/madrid-prd/madrid-web/images/sites/2374193/e6ba5f013cd6e935525a24821bde777c_e543c88650ffd18f66f0b7b6fd423072.png',
'かみーら' => 'https://kami-ra.com/wp/wp-content/uploads/2021/11/top_01.jpg',
'しまナーシングホームガーデン' => 'https://goodbyinc.com/wp-content/uploads/2026/05/kaigo-mito-01.jpg',
'えみてる水戸見川' => 'https://goodbyinc.com/wp-content/uploads/2026/05/gh-mito-01.jpg',
'ドルチェ水戸大塚' => 'https://goodbyinc.com/wp-content/uploads/2026/05/sakoju-hitachinaka-01.jpg',
'ドルチェ水戸姫子' => 'https://goodbyinc.com/wp-content/uploads/2026/05/sakoju-hitachinaka-02.jpg',
'まごころの家水戸駅南' => 'https://goodbyinc.com/wp-content/uploads/2026/05/20221212162141.jpg',
'まごころの家水戸堀町' => 'https://goodbyinc.com/wp-content/uploads/2026/05/20171108054021.jpg',
'まごころの家ひたちなか東石川' => 'https://www.sagasix.jp/files/upload/facility/102/101920/Detail/facility_101920_1250749_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか松戸' => 'https://www.sagasix.jp/files/upload/facility/102/101921/Detail/facility_101921_654772_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか高野' => 'https://www.sagasix.jp/files/upload/facility/102/101919/Detail/facility_101919_654764_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか佐和' => 'https://www.sagasix.jp/files/upload/facility/102/101918/Detail/facility_101918_651628_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか馬渡' => 'https://www.sagasix.jp/files/upload/facility/102/101917/Detail/facility_101917_651626_thumbnail-h-(493x370).jpg',
'愛の家グループホームひたちなか' => 'https://www.sagasix.jp/files/upload/facility/6/5856/Detail/facility_5856_1619407_thumbnail-h-(493x370).jpg',
'愛の家グループホームひたちなか中根' => 'https://www.sagasix.jp/files/upload/facility/101/100478/Detail/facility_100478_1336436_thumbnail-h-(493x370).jpg',
'ここいちひたちなか' => 'https://www.sagasix.jp/files/upload/facility/3/2806/Detail/facility_2806_1795222_thumbnail-h-(493x370).jpg',
'ご長寿クラブ佐和' => 'https://www.sagasix.jp/files/upload/facility/11/10013/Detail/facility_10013_1874104_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ ひたちなか市・東石川' => 'https://www.sagasix.jp/files/upload/facility/7/6491/Detail/facility_6491_1844660_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ ひたちなか市・高場' => 'https://www.sagasix.jp/files/upload/facility/7/6490/Detail/facility_6490_1804037_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ ひたちなか市・外野' => 'https://www.sagasix.jp/files/upload/facility/7/6494/Detail/facility_6494_1791891_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ笹野Ⅰ' => 'https://www.sagasix.jp/files/upload/facility/7/6503/Detail/facility_6503_1613950_thumbnail-h-(493x370).webp',
'ご長寿くらぶ笹野Ⅱ' => 'https://www.sagasix.jp/files/upload/facility/7/6516/Detail/facility_6516_1613925_thumbnail-h-(493x370).webp',
'勝田ケアセンターそよ風' => 'https://img.minnanokaigo.com/shisetsu/7358/pic/20191022112437.jpg',
'ほっと・ハウス大沼' => 'https://img.minnanokaigo.com/shisetsu/97283/pic/20200702161045.jpg',
'古民家シェアハウスhinata〜陽〜' => 'https://img.minnanokaigo.com/shisetsu/109676/pic/20230712031516.jpg',
'はるのさと' => 'https://img.minnanokaigo.com/shisetsu/73158/pic/20220621050852.jpg',
'クローバーの丘' => 'https://img.minnanokaigo.com/shisetsu/73154/pic/20220621050706.jpg',
'ヴィラまごころ大みか' => 'https://www.sagasix.jp/files/upload/facility/102/101953/Detail/facility_101953_1760244_thumbnail-h-(493x370).jpg',
'らいふアシスト・泉ヶ森 本館' => 'https://www.sagasix.jp/files/upload/facility/6/5465/Detail/facility_5465_1615481_thumbnail-h-(493x370).jpg',
'らいふアシスト・泉ヶ森 ナーシングケアレジデンス' => 'https://www.sagasix.jp/files/upload/facility/6/5498/Detail/facility_5498_763781_thumbnail-h-(493x370).webp',
'らいふアシスト・泉ヶ森 南館' => 'https://www.sagasix.jp/files/upload/facility/6/5470/Detail/facility_5470_763762_thumbnail-h-(493x370).webp',
'ご長寿くらぶ日立諏訪Ⅰ' => 'https://www.sagasix.jp/files/upload/facility/7/6485/Detail/facility_6485_1844672_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ日立大沼Ⅱ' => 'https://www.sagasix.jp/files/upload/facility/7/6538/Detail/facility_6538_1614094_thumbnail-h-(493x370).webp',
'ご長寿くらぶ日立・本宮' => 'https://www.sagasix.jp/files/upload/facility/7/6502/Detail/facility_6502_1613997_thumbnail-h-(493x370).webp',
'まごころの家鮎川' => 'https://www.sagasix.jp/files/upload/facility/102/101911/Detail/facility_101911_1126166_thumbnail-h-(493x370).jpg',
'まごころの家森山' => 'https://www.sagasix.jp/files/upload/facility/102/101901/Detail/facility_101901_1126174_thumbnail-h-(493x370).jpg',
'まごころの家小木津' => 'https://www.sagasix.jp/files/upload/facility/102/101900/Detail/facility_101900_1126172_thumbnail-h-(493x370).jpg',
'まごころの家塙山' => 'https://www.sagasix.jp/files/upload/facility/102/101899/Detail/facility_101899_1336546_thumbnail-h-(493x370).jpg',
'まごころの家金沢' => 'https://www.sagasix.jp/files/upload/facility/102/101898/Detail/facility_101898_1126170_thumbnail-h-(493x370).jpg',
'まごころの家すえひろ' => 'https://www.sagasix.jp/files/upload/facility/102/101897/Detail/facility_101897_1126169_thumbnail-h-(493x370).jpg',
'まごころの家大沼' => 'https://www.sagasix.jp/files/upload/facility/102/101904/Detail/facility_101904_1126167_thumbnail-h-(493x370).jpg',
'まごころの家日立大久保' => 'https://www.sagasix.jp/files/upload/facility/102/101909/Detail/facility_101909_1761843_thumbnail-h-(493x370).jpg',
'ふるさとホーム日立' => 'https://img.minnanokaigo.com/shisetsu/4718/pic/20161227152906.jpg',
'ふらわあ館宮田' => 'https://img.minnanokaigo.com/shisetsu/109673/pic/20230711100527.jpg',
'レゴリス東海' => 'https://img.minnanokaigo.com/shisetsu/97285/pic/20200702161312.jpg',
'レゴリスひたちなか' => 'https://img.minnanokaigo.com/shisetsu/97285/pic/20200702161312.jpg',
'さわやか荘' => 'https://img.minnanokaigo.com/shisetsu/26068/pic/20190502135234.jpg',
'特別養護老人ホーム春寿園' => 'https://img.minnanokaigo.com/shisetsu/3476/pic/20160526155728.jpg',
'特別養護老人ホーム世矢の里' => 'https://img.minnanokaigo.com/shisetsu/3514/pic/20181128160252.jpg',
'住宅型有料老人ホーム秋桜の家' => 'https://www.sagasix.jp/files/upload/facility/101/100071/Detail/facility_100071_1011771_thumbnail-h-(493x370).jpg',
'まごころの家赤塚' => 'https://www.sagasix.jp/files/upload/facility/102/101923/Detail/facility_101923_1337172_thumbnail-h-(493x370).jpg',
'まごころの家水戸若宮' => 'https://www.sagasix.jp/files/upload/facility/102/101922/Detail/facility_101922_1336420_thumbnail-h-(493x370).jpg',
'しまナーシングホーム平須' => 'https://www.sagasix.jp/files/upload/facility/3/2645/Detail/facility_2645_1866855_thumbnail-h-(493x370).jpg',
'はぴね水戸' => 'https://www.sagasix.jp/files/upload/facility/8/7879/Detail/facility_7879_1676831_thumbnail-h-(493x370).jpg',
'ケアレジデンス水戸新館' => 'https://www.sagasix.jp/files/upload/facility/7/6451/Detail/facility_6451_1454410_thumbnail-h-(493x370).webp',
'ケアレジデンス水戸元吉田館' => 'https://www.sagasix.jp/files/upload/facility/7/6452/Detail/facility_6452_928565_thumbnail-h-(493x370).webp',
'ケアレジデンス水戸本館' => 'https://www.sagasix.jp/files/upload/facility/7/6450/Detail/facility_6450_222044_thumbnail-h-(493x370).webp',
'しまホーム河和田' => 'https://www.sagasix.jp/files/upload/facility/3/2644/Detail/facility_2644_1868004_thumbnail-h-(493x370).jpg',
'しまホーム平須' => 'https://www.sagasix.jp/files/upload/facility/4/3915/Detail/facility_3915_1518781_thumbnail-h-(493x370).webp',
'はしかべ水戸松本町' => 'https://www.sagasix.jp/files/upload/facility/8/7325/Detail/facility_7325_1867768_thumbnail-h-(493x370).jpg',
'はしかべ水戸河和田町' => 'https://www.sagasix.jp/files/upload/facility/8/7324/Detail/facility_7324_1866516_thumbnail-h-(493x370).jpg',
'いっしん館水戸' => 'https://www.sagasix.jp/files/upload/facility/3/2812/Detail/facility_2812_1795249_thumbnail-h-(493x370).jpg',
'いっしん館内原' => 'https://www.sagasix.jp/files/upload/facility/3/2817/Detail/facility_2817_1795306_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ水戸けやき台' => 'https://www.sagasix.jp/files/upload/facility/7/6493/Detail/facility_6493_1614021_thumbnail-h-(493x370).webp',
'ご長寿くらぶ水戸・金町' => 'https://www.sagasix.jp/files/upload/facility/7/6513/Detail/facility_6513_1613874_thumbnail-h-(493x370).webp',
'ご長寿くらぶ水戸石川' => 'https://www.sagasix.jp/files/upload/facility/7/6526/Detail/facility_6526_1613863_thumbnail-h-(493x370).webp',
'まごころの家ひたちなか東石川' => 'https://www.sagasix.jp/files/upload/facility/102/101920/Detail/facility_101920_1250749_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか松戸' => 'https://www.sagasix.jp/files/upload/facility/102/101921/Detail/facility_101921_654772_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか高野' => 'https://www.sagasix.jp/files/upload/facility/102/101919/Detail/facility_101919_654764_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか佐和' => 'https://www.sagasix.jp/files/upload/facility/102/101918/Detail/facility_101918_651628_thumbnail-h-(493x370).jpg',
'まごころの家ひたちなか馬渡' => 'https://www.sagasix.jp/files/upload/facility/102/101917/Detail/facility_101917_651626_thumbnail-h-(493x370).jpg',
'愛の家グループホームひたちなか' => 'https://www.sagasix.jp/files/upload/facility/6/5856/Detail/facility_5856_1619407_thumbnail-h-(493x370).jpg',
'愛の家グループホームひたちなか中根' => 'https://www.sagasix.jp/files/upload/facility/101/100478/Detail/facility_100478_1336436_thumbnail-h-(493x370).jpg',
'ここいちひたちなか' => 'https://www.sagasix.jp/files/upload/facility/3/2806/Detail/facility_2806_1795222_thumbnail-h-(493x370).jpg',
'ご長寿クラブ佐和' => 'https://www.sagasix.jp/files/upload/facility/11/10013/Detail/facility_10013_1874104_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ ひたちなか市・東石川' => 'https://www.sagasix.jp/files/upload/facility/7/6491/Detail/facility_6491_1844660_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ ひたちなか市・高場' => 'https://www.sagasix.jp/files/upload/facility/7/6490/Detail/facility_6490_1804037_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ ひたちなか市・外野' => 'https://www.sagasix.jp/files/upload/facility/7/6494/Detail/facility_6494_1791891_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ笹野Ⅰ' => 'https://www.sagasix.jp/files/upload/facility/7/6503/Detail/facility_6503_1613950_thumbnail-h-(493x370).webp',
'ご長寿くらぶ笹野Ⅱ' => 'https://www.sagasix.jp/files/upload/facility/7/6516/Detail/facility_6516_1613925_thumbnail-h-(493x370).webp',
'勝田ケアセンターそよ風' => 'https://img.minnanokaigo.com/shisetsu/7358/pic/20191022112437.jpg',
'ほっと・ハウス大沼' => 'https://img.minnanokaigo.com/shisetsu/97283/pic/20200702161045.jpg',
'古民家シェアハウスhinata〜陽〜' => 'https://img.minnanokaigo.com/shisetsu/109676/pic/20230712031516.jpg',
'はるのさと' => 'https://img.minnanokaigo.com/shisetsu/73158/pic/20220621050852.jpg',
'クローバーの丘' => 'https://img.minnanokaigo.com/shisetsu/73154/pic/20220621050706.jpg',
'ヴィラまごころ大みか' => 'https://www.sagasix.jp/files/upload/facility/102/101953/Detail/facility_101953_1760244_thumbnail-h-(493x370).jpg',
'らいふアシスト・泉ヶ森 本館' => 'https://www.sagasix.jp/files/upload/facility/6/5465/Detail/facility_5465_1615481_thumbnail-h-(493x370).jpg',
'らいふアシスト・泉ヶ森 ナーシングケアレジデンス' => 'https://www.sagasix.jp/files/upload/facility/6/5498/Detail/facility_5498_763781_thumbnail-h-(493x370).webp',
'らいふアシスト・泉ヶ森 南館' => 'https://www.sagasix.jp/files/upload/facility/6/5470/Detail/facility_5470_763762_thumbnail-h-(493x370).webp',
'ご長寿くらぶ日立諏訪Ⅰ' => 'https://www.sagasix.jp/files/upload/facility/7/6485/Detail/facility_6485_1844672_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ日立大沼Ⅱ' => 'https://www.sagasix.jp/files/upload/facility/7/6538/Detail/facility_6538_1614094_thumbnail-h-(493x370).webp',
'ご長寿くらぶ日立・本宮' => 'https://www.sagasix.jp/files/upload/facility/7/6502/Detail/facility_6502_1613997_thumbnail-h-(493x370).webp',
'まごころの家鮎川' => 'https://www.sagasix.jp/files/upload/facility/102/101911/Detail/facility_101911_1126166_thumbnail-h-(493x370).jpg',
'まごころの家森山' => 'https://www.sagasix.jp/files/upload/facility/102/101901/Detail/facility_101901_1126174_thumbnail-h-(493x370).jpg',
'まごころの家小木津' => 'https://www.sagasix.jp/files/upload/facility/102/101900/Detail/facility_101900_1126172_thumbnail-h-(493x370).jpg',
'まごころの家塙山' => 'https://www.sagasix.jp/files/upload/facility/102/101899/Detail/facility_101899_1336546_thumbnail-h-(493x370).jpg',
'まごころの家金沢' => 'https://www.sagasix.jp/files/upload/facility/102/101898/Detail/facility_101898_1126170_thumbnail-h-(493x370).jpg',
'まごころの家すえひろ' => 'https://www.sagasix.jp/files/upload/facility/102/101897/Detail/facility_101897_1126169_thumbnail-h-(493x370).jpg',
'まごころの家大沼' => 'https://www.sagasix.jp/files/upload/facility/102/101904/Detail/facility_101904_1126167_thumbnail-h-(493x370).jpg',
'まごころの家日立大久保' => 'https://www.sagasix.jp/files/upload/facility/102/101909/Detail/facility_101909_1761843_thumbnail-h-(493x370).jpg',
'ふるさとホーム日立' => 'https://img.minnanokaigo.com/shisetsu/4718/pic/20161227152906.jpg',
'ふらわあ館宮田' => 'https://img.minnanokaigo.com/shisetsu/109673/pic/20230711100527.jpg',
'レゴリス東海' => 'https://img.minnanokaigo.com/shisetsu/97285/pic/20200702161312.jpg',
'レゴリスひたちなか' => 'https://img.minnanokaigo.com/shisetsu/97285/pic/20200702161312.jpg',
'さわやか荘' => 'https://img.minnanokaigo.com/shisetsu/26068/pic/20190502135234.jpg',
'特別養護老人ホーム春寿園' => 'https://img.minnanokaigo.com/shisetsu/3476/pic/20160526155728.jpg',
'特別養護老人ホーム世矢の里' => 'https://img.minnanokaigo.com/shisetsu/3514/pic/20181128160252.jpg',
'住宅型有料老人ホーム秋桜の家' => 'https://www.sagasix.jp/files/upload/facility/101/100071/Detail/facility_100071_1011771_thumbnail-h-(493x370).jpg',
'まごころの家赤塚' => 'https://www.sagasix.jp/files/upload/facility/102/101923/Detail/facility_101923_1337172_thumbnail-h-(493x370).jpg',
'まごころの家水戸若宮' => 'https://www.sagasix.jp/files/upload/facility/102/101922/Detail/facility_101922_1336420_thumbnail-h-(493x370).jpg',
'しまナーシングホーム平須' => 'https://www.sagasix.jp/files/upload/facility/3/2645/Detail/facility_2645_1866855_thumbnail-h-(493x370).jpg',
'はぴね水戸' => 'https://www.sagasix.jp/files/upload/facility/8/7879/Detail/facility_7879_1676831_thumbnail-h-(493x370).jpg',
'ケアレジデンス水戸新館' => 'https://www.sagasix.jp/files/upload/facility/7/6451/Detail/facility_6451_1454410_thumbnail-h-(493x370).webp',
'ケアレジデンス水戸元吉田館' => 'https://www.sagasix.jp/files/upload/facility/7/6452/Detail/facility_6452_928565_thumbnail-h-(493x370).webp',
'ケアレジデンス水戸本館' => 'https://www.sagasix.jp/files/upload/facility/7/6450/Detail/facility_6450_222044_thumbnail-h-(493x370).webp',
'しまホーム河和田' => 'https://www.sagasix.jp/files/upload/facility/3/2644/Detail/facility_2644_1868004_thumbnail-h-(493x370).jpg',
'しまホーム平須' => 'https://www.sagasix.jp/files/upload/facility/4/3915/Detail/facility_3915_1518781_thumbnail-h-(493x370).webp',
'はしかべ水戸松本町' => 'https://www.sagasix.jp/files/upload/facility/8/7325/Detail/facility_7325_1867768_thumbnail-h-(493x370).jpg',
'はしかべ水戸河和田町' => 'https://www.sagasix.jp/files/upload/facility/8/7324/Detail/facility_7324_1866516_thumbnail-h-(493x370).jpg',
'いっしん館水戸' => 'https://www.sagasix.jp/files/upload/facility/3/2812/Detail/facility_2812_1795249_thumbnail-h-(493x370).jpg',
'いっしん館内原' => 'https://www.sagasix.jp/files/upload/facility/3/2817/Detail/facility_2817_1795306_thumbnail-h-(493x370).jpg',
'ご長寿くらぶ水戸けやき台' => 'https://www.sagasix.jp/files/upload/facility/7/6493/Detail/facility_6493_1614021_thumbnail-h-(493x370).webp',
'ご長寿くらぶ水戸・金町' => 'https://www.sagasix.jp/files/upload/facility/7/6513/Detail/facility_6513_1613874_thumbnail-h-(493x370).webp',
'ご長寿くらぶ水戸石川' => 'https://www.sagasix.jp/files/upload/facility/7/6526/Detail/facility_6526_1613863_thumbnail-h-(493x370).webp',
'ケアレジデンス日立' => 'https://mito-roujinhome.com/wp-content/uploads/2024/10/c7f2b31c515d652f3b549c509f838f33-600x450.jpeg',
];
return isset( $map[ $title ] ) ? esc_url( $map[ $title ] ) : '';
}
add_action('wp_head', function() {
?>
<style>
.tf-lp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.tf-lp-card{display:flex;align-items:flex-start;gap:16px;padding:24px;background:#fff;border-radius:12px;border:1.5px solid #e8f0ec;text-decoration:none;color:#1a3a2a;box-shadow:0 2px 12px rgba(74,120,104,.08);transition:transform .2s,box-shadow .2s}
.tf-lp-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(74,120,104,.15);border-color:#4a7868}
.tf-lp-icon{font-size:2rem;flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4ef,#d4ece2);border-radius:12px}
.tf-lp-body{flex:1}
.tf-lp-label{font-size:.72rem;font-weight:700;color:#4a7868;background:#e8f4ef;display:inline-block;padding:2px 10px;border-radius:20px;margin-bottom:6px}
.tf-lp-title{font-size:1rem;font-weight:700;color:#1a3a2a;margin:0 0 6px;line-height:1.4}
.tf-lp-desc{font-size:.82rem;color:#5a7a6a;margin:0;line-height:1.5}
.tf-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.tf-card{display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;border:1.5px solid #e8f0ec;text-decoration:none;color:#1a3a2a;box-shadow:0 2px 12px rgba(74,120,104,.08);transition:transform .2s,box-shadow .2s}
.tf-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(74,120,104,.15)}
.tf-card-img{height:160px;background-size:cover;background-position:center;background-color:#e8f4ef;position:relative}
.tf-card-type{position:absolute;top:10px;left:10px;font-size:.7rem;font-weight:700;background:#4a7868;color:#fff;padding:3px 10px;border-radius:20px}
.tf-card-body{padding:16px}
.tf-card-title{font-size:.95rem;font-weight:700;margin:0 0 6px;line-height:1.4}
.tf-card-city{font-size:.8rem;color:#5a7a6a;margin:0 0 4px}
.tf-card-fee{font-size:.82rem;color:#4a7868;font-weight:600;margin:0}
.tf-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.tf-filter-btn{display:inline-block;padding:6px 18px;border-radius:20px;border:1.5px solid #c8ddd4;color:#4a7868;font-size:.85rem;text-decoration:none;font-weight:600;transition:all .2s}
.tf-filter-btn:hover,.tf-filter-btn.active{background:#4a7868;color:#fff;border-color:#4a7868}
.tf-btn-wrap{text-align:center;margin-top:36px}
.tf-contact-wrap{max-width:600px;margin:0 auto;text-align:center}
.tf-contact-info{background:#fff;border-radius:16px;padding:40px;box-shadow:0 4px 20px rgba(74,120,104,.1)}
.tf-contact-tel{margin-bottom:20px}
.tf-contact-tel-label{display:block;font-size:.85rem;color:#5a7a6a;margin-bottom:8px}
.tf-contact-tel-num{display:block;font-size:2rem;font-weight:800;color:#4a7868;text-decoration:none;letter-spacing:.05em}
.tf-contact-tel-hours{display:block;font-size:.78rem;color:#888;margin-top:4px}
.tf-contact-note{color:#5a7a6a;font-size:.88rem;margin-bottom:24px}
@media(max-width:768px){.tf-lp-grid,.tf-cards-grid{grid-template-columns:1fr}}
/* ===== エリアセクション ===== */
.tf-area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}
.tf-area-card{display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;border:1.5px solid #e8f0ec;text-decoration:none;color:#1a3a2a;box-shadow:0 2px 12px rgba(74,120,104,.08);transition:transform .2s,box-shadow .2s}
.tf-area-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(74,120,104,.15)}
.tf-area-card-img{height:120px;background-size:cover;background-position:center;background-color:#c8ddd4;position:relative}
.tf-area-card-body{padding:16px}
.tf-area-card-title{font-size:1.1rem;font-weight:800;color:#1a3a2a;margin:0 0 6px}
.tf-area-card-count{font-size:.8rem;color:#4a7868;font-weight:600;margin:0 0 10px}
.tf-area-card-tags{display:flex;flex-wrap:wrap;gap:4px}
.tf-area-tag{font-size:.7rem;padding:2px 8px;background:#e8f4ef;color:#4a7868;border-radius:20px}
@media(max-width:768px){.tf-area-grid{grid-template-columns:repeat(2,1fr)}}
/* ===== フロー(相談の流れ)セクション ===== */
.tf-flow{display:flex;flex-direction:column;gap:0;margin-top:32px;position:relative}
.tf-flow::before{content:'';position:absolute;left:28px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,#4a7868,#c8ddd4);z-index:0}
.tf-flow-item{display:flex;align-items:flex-start;gap:20px;padding:24px 0;position:relative;z-index:1}
.tf-flow-num{width:56px;height:56px;flex-shrink:0;background:#4a7868;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:800;box-shadow:0 2px 8px rgba(74,120,104,.3)}
.tf-flow-body{flex:1;background:#fff;border-radius:12px;padding:20px 24px;border:1.5px solid #e8f0ec;box-shadow:0 2px 8px rgba(74,120,104,.06)}
.tf-flow-title{font-size:1rem;font-weight:800;color:#1a3a2a;margin:0 0 6px}
.tf-flow-desc{font-size:.85rem;color:#5a7a6a;margin:0;line-height:1.6}
/* ===== ZINEセクション ===== */
.tf-zine{background:linear-gradient(135deg,#1a3a2a 0%,#2d5a44 50%,#4a7868 100%);color:#fff;padding:80px 0;overflow:hidden;position:relative}
.tf-zine::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.tf-zine-inner{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.tf-zine-badge{display:inline-block;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.75rem;font-weight:700;padding:4px 14px;border-radius:20px;margin-bottom:16px;letter-spacing:.05em}
.tf-zine-h2{font-size:2.2rem;font-weight:900;color:#fff!important;line-height:1.3;margin:0 0 16px}
.tf-zine-desc{font-size:.95rem;color:rgba(255,255,255,.8);line-height:1.7;margin:0 0 28px}
.tf-zine-btn{display:inline-block;background:#fff;color:#1a3a2a;font-weight:700;padding:12px 28px;border-radius:8px;text-decoration:none;font-size:.9rem;transition:all .2s}
.tf-zine-btn:hover{background:#e8f4ef;transform:translateY(-2px)}
.tf-zine-img{position:relative;display:flex;align-items:center;justify-content:center}
.tf-zine-img img{max-width:100%;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.3);transform:rotate(-2deg)}
@media(max-width:768px){.tf-zine-inner{grid-template-columns:1fr;gap:32px}.tf-zine-h2{font-size:1.6rem}}
/* ===== 施設カードの追加スタイル ===== */
.tf-sec-title{font-size:1.8rem;font-weight:800;color:#1a3a2a;margin:0 0 12px}
.tf-sec-title-line{width:48px;height:3px;background:linear-gradient(90deg,#4a7868,#8bbcaa);border-radius:2px;margin-bottom:16px}
.tf-sec-sub{font-size:.95rem;color:#5a7a6a;margin:0 0 8px;line-height:1.6}
.tf-sec{padding:72px 0}
.tf-sec-alt{background:#f0f7f4}
.tf-con{max-width:1200px;margin:0 auto;padding:0 24px}
/* ===== 施設一覧FAC グリッド ===== */
.tf-fac-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:20px}
@media(max-width:768px){.tf-fac-grid{grid-template-columns:1fr}}
/* ===== フッター追加 ===== */
.tf-ft-badge,.tf-ft-btm,.tf-ft-copy,.tf-ft-cta,.tf-ft-divider,.tf-ft-grid,.tf-ft-hd,.tf-ft-inner,.tf-ft-links,.tf-ft-logo-icon,.tf-ft-logo-name,.tf-ft-logo-row,.tf-ft-note,.tf-ft-tagline,.tf-ft-tel{box-sizing:border-box}
/* ===== こんなご状況 / casesセクション ===== */
.tf-cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.tf-case-card{background:#fff;border-radius:12px;padding:24px;border:1.5px solid #e8f0ec;box-shadow:0 2px 12px rgba(74,120,104,.07)}
.tf-case-num{font-size:2rem;font-weight:900;color:#c8ddd4;line-height:1;margin-bottom:8px}
.tf-case-title{font-size:1rem;font-weight:700;color:#1a3a2a;margin:0 0 8px}
.tf-case-desc{font-size:.85rem;color:#5a7a6a;margin:0;line-height:1.6}
@media(max-width:768px){.tf-cases-grid,.tf-area-grid{grid-template-columns:1fr}}
.tf-stats{background:rgba(255,255,255,.95);backdrop-filter:blur(8px);border-bottom:3px solid var(--p);padding:20px 0}
.tf-stats-inner{max-width:900px;margin:0 auto;padding:0 24px;display:flex;justify-content:space-around;flex-wrap:wrap;gap:16px}
.tf-stat-item{text-align:center;padding:8px 16px}
.tf-stat-num{display:block;font-size:2rem;font-weight:900;color:var(--p);line-height:1.1}
.tf-stat-label{display:block;font-size:.8rem;color:#555;margin-top:4px}
.tf-hero-title,.tf-hero-sub,.tf-hero-eyebrow{text-shadow:0 2px 12px rgba(0,0,0,.8),0 1px 4px rgba(0,0,0,.5)}
.tf-cmp-btn{display:block;width:100%;margin-top:8px;background:#eaf5f0;color:#1a3d2e;border:2px solid #1a3d2e;border-radius:8px;padding:8px 12px;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s;text-align:center;white-space:nowrap}
.tf-cmp-btn:hover,.tf-cmp-btn.active{background:#1a3d2e;color:#fff;border-color:#1a3d2e}
#tf-cmp-bar{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:#1a3d2e;color:#fff;padding:14px 20px;display:flex;align-items:center;gap:12px;transform:translateY(100%);transition:transform .3s;box-shadow:0 -4px 20px rgba(0,0,0,.3)}
#tf-cmp-bar.visible{transform:translateY(0)}
#tf-cmp-bar .cmp-items{display:flex;gap:8px;flex:1;flex-wrap:wrap}
#tf-cmp-bar .cmp-chip{background:rgba(255,255,255,.15);padding:5px 12px;border-radius:20px;font-size:.82rem;display:flex;align-items:center;gap:6px}
#tf-cmp-bar .cmp-chip button{background:none;border:none;color:#fff;cursor:pointer;font-size:1rem;line-height:1;padding:0}
#tf-cmp-bar .cmp-go{background:#f7f0e2;color:#1a3d2e;border:none;border-radius:20px;padding:8px 20px;font-weight:700;cursor:pointer;font-size:.9rem;white-space:nowrap}
#tf-cmp-bar .cmp-go:disabled{opacity:.4;cursor:default}
#tf-cmp-modal{display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.6);overflow-y:auto}
#tf-cmp-modal.open{display:flex;align-items:flex-start;justify-content:center;padding:40px 16px}
#tf-cmp-modal .cmp-box{background:#fff;border-radius:16px;max-width:900px;width:100%;overflow:hidden}
#tf-cmp-modal .cmp-head{background:#1a3d2e;color:#fff;padding:20px 24px;display:flex;justify-content:space-between;align-items:center}
#tf-cmp-modal .cmp-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer}
#tf-cmp-modal table{width:100%;border-collapse:collapse}
#tf-cmp-modal th{background:#f0f7f4;padding:12px 16px;text-align:left;font-size:.85rem;color:#555;border-bottom:1px solid #e0ede9;white-space:nowrap}
#tf-cmp-modal td{padding:14px 16px;border-bottom:1px solid #f0f0f0;font-size:.9rem;vertical-align:top}
#tf-cmp-modal td:first-child{font-weight:600;background:#fafafa;width:100px}
.cmp-hint{font-size:.8rem;color:rgba(255,255,255,.7);white-space:nowrap;margin-right:8px}
</style>
<?php
});
add_action( 'init', 'tf_register_post_types' );
// === 施設データ一括更新 v3 ===
add_action('init', function(){
if(get_option('tf_meta_patch_v4')) return;
$updates = [
'愛の家グループホームひたちなか' => [
'tf_monthly_min'=>131950,
'tf_monthly_max'=>131950,
'tf_cond_ninchisho'=>'1',
'tf_cond_mitatori'=>'1',
],
'勝田ケアセンターそよ風' => [
'tf_monthly_min'=>134580,
'tf_monthly_max'=>134580,
'tf_cond_ninchisho'=>'1',
'tf_cond_mitatori'=>'1',
],
'愛の家グループホームひたちなか中根' => [
'tf_monthly_min'=>131950,
'tf_monthly_max'=>131950,
'tf_cond_ninchisho'=>'1',
'tf_cond_mitatori'=>'1',
],
'特別養護老人ホーム春寿園' => [
'tf_monthly_min'=>73440,
'tf_monthly_max'=>81260,
'tf_cond_ninchisho'=>'1',
'tf_cond_iryo'=>'1',
'tf_cond_mitatori'=>'1',
'tf_cond_seikatsuhogo'=>'1',
],
'世矢の里' => [
'tf_monthly_min'=>72000,
'tf_monthly_max'=>82000,
'tf_cond_ninchisho'=>'1',
'tf_cond_iryo'=>'1',
'tf_cond_mitatori'=>'1',
'tf_cond_seikatsuhogo'=>'1',
],
'常陸東海園' => [
'tf_cond_ninchisho'=>'1',
'tf_cond_iryo'=>'1',
'tf_cond_mitatori'=>'1',
'tf_cond_seikatsuhogo'=>'1',
],
'愛の家グループホーム日立' => [
'tf_cond_ninchisho'=>'1',
'tf_cond_mitatori'=>'1',
],
'まごころの家村松' => [
'tf_cond_mitatori'=>'1',
'tf_cond_ninchisho'=>'1',
'tf_cond_seikatsuhogo'=>'1',
],
'ふるさとホーム日立' => [
'tf_cond_ninchisho'=>'1',
'tf_cond_iryo'=>'1',
'tf_cond_mitatori'=>'1',
],
'秋桜の家森山' => [
'tf_cond_ninchisho'=>'1',
'tf_cond_seikatsuhogo'=>'1',
],
'まごころの家日立大久保' => [
'tf_cond_ninchisho'=>'1',
'tf_cond_mitatori'=>'1',
'tf_cond_fufu'=>'1',
],
'はるのさと' => [
'tf_cond_ninchisho'=>'1',
'tf_cond_mitatori'=>'1',
'tf_cond_seikatsuhogo'=>'1',
],
'豊浦の郷' => [
'tf_cond_fufu'=>'1',
],
];
foreach($updates as $title => $meta){
$q=new WP_Query(['post_type'=>'facility','title'=>$title,'posts_per_page'=>1,'post_status'=>'publish']);
if($q->have_posts()){$q->the_post(); $pid=get_the_ID(); foreach($meta as $k=>$v) update_post_meta($pid,$k,$v);}
wp_reset_postdata();
}
update_option('tf_meta_patch_v4', 1);
}, 20);
add_action('init', function(){
if(get_option('tf_meta_patch_v5')) return;
$updates = [
'いっしん館内原' => ['tf_monthly_min'=>131950,'tf_monthly_max'=>131950,'tf_cond_ninchisho'=>'1','tf_cond_mitatori'=>'1'],
'いっしん館水戸' => ['tf_monthly_min'=>131950,'tf_monthly_max'=>131950,'tf_cond_ninchisho'=>'1','tf_cond_mitatori'=>'1'],
'水戸ケアセンターそよ風' => ['tf_monthly_min'=>131950,'tf_monthly_max'=>131950,'tf_cond_ninchisho'=>'1','tf_cond_mitatori'=>'1'],
'しまホーム平須' => ['tf_monthly_min'=>120000,'tf_monthly_max'=>150000,'tf_cond_ninchisho'=>'1'],
'しまホーム河和田' => ['tf_monthly_min'=>120000,'tf_monthly_max'=>150000,'tf_cond_ninchisho'=>'1'],
'えみてる水戸見川' => ['tf_monthly_min'=>110000,'tf_monthly_max'=>140000,'tf_cond_ninchisho'=>'1'],
'しまナーシングホーム平須' => ['tf_monthly_min'=>175000,'tf_monthly_max'=>200000,'tf_cond_ninchisho'=>'1','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1'],
'しまナーシングホームガーデン' => ['tf_monthly_min'=>175000,'tf_monthly_max'=>200000,'tf_cond_ninchisho'=>'1','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1'],
'ケアレジデンス水戸本館' => ['tf_monthly_min'=>155000,'tf_monthly_max'=>180000,'tf_cond_ninchisho'=>'1','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1'],
'ケアレジデンス水戸新館' => ['tf_monthly_min'=>155000,'tf_monthly_max'=>180000,'tf_cond_ninchisho'=>'1','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1'],
'ケアレジデンス水戸元吉田館' => ['tf_monthly_min'=>155000,'tf_monthly_max'=>180000,'tf_cond_ninchisho'=>'1','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1'],
'やすらぎ梅寿園' => ['tf_monthly_min'=>155000,'tf_monthly_max'=>185000,'tf_cond_ninchisho'=>'1','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1'],
];
foreach($updates as $name => $meta){
$q = new WP_Query(['post_type'=>'facility','title'=>$name,'posts_per_page'=>1,'fields'=>'ids']);
if($q->have_posts()){ $pid=$q->posts[0]; foreach($meta as $k=>$v) update_post_meta($pid,$k,$v); }
wp_reset_postdata();
}
update_option('tf_meta_patch_v5', 1);
}, 20);
add_action('init', function(){
if(get_option('tf_meta_patch_v6')) return;
$adm = [
'ケアレジデンス水戸本館' => ['tf_admission_min'=>3500000,'tf_admission_max'=>31000000],
'ケアレジデンス水戸新館' => ['tf_admission_min'=>0,'tf_admission_max'=>28000000],
'ケアレジデンス水戸元吉田館' => ['tf_admission_min'=>2300000,'tf_admission_max'=>7200000],
'やすらぎ梅寿園' => ['tf_admission_min'=>2200000,'tf_admission_max'=>6800000],
'しまナーシングホーム平須' => ['tf_admission_min'=>600000,'tf_admission_max'=>600000],
'しまナーシングホームガーデン' => ['tf_admission_min'=>2800000,'tf_admission_max'=>3200000],
'ラ・ナシカひたちなか' => ['tf_admission_min'=>100000,'tf_admission_max'=>100000],
];
foreach($adm as $name => $meta){
$q = new WP_Query(['post_type'=>'facility','title'=>$name,'posts_per_page'=>1,'fields'=>'ids']);
if($q->have_posts()){ $pid=$q->posts[0]; foreach($meta as $k=>$v) update_post_meta($pid,$k,$v); }
wp_reset_postdata();
}
update_option('tf_meta_patch_v6', 1);
}, 20);
function tf_register_post_types() {
register_post_type( 'facility', [
'labels' => [
'name' => '施設',
'singular_name' => '施設',
'add_new' => '施設を追加',
'add_new_item' => '新しい施設を追加',
'edit_item' => '施設を編集',
'all_items' => '施設一覧',
'search_items' => '施設を検索',
'not_found' => '施設が見つかりません',
'not_found_in_trash' => 'ゴミ箱に施設はありません',
],
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-building',
'menu_position' => 5,
'supports' => [ 'title', 'editor', 'thumbnail', 'custom-fields' ],
'rewrite' => [ 'slug' => TF_BASE . '/facilities', 'with_front' => false ],
'show_in_rest' => true,
] );
register_post_type( 'tf_case', [
'labels' => [
'name' => '相談事例',
'singular_name' => '相談事例',
'add_new' => '事例を追加',
'add_new_item' => '新しい事例を追加',
'edit_item' => '事例を編集',
'all_items' => '事例一覧',
'not_found' => '事例が見つかりません',
],
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-businessman',
'menu_position' => 6,
'supports' => [ 'title', 'editor', 'thumbnail', 'excerpt' ],
'rewrite' => [ 'slug' => TF_BASE . '/cases', 'with_front' => false ],
'show_in_rest' => true,
] );
register_post_type( 'tf_column', [
'labels' => [
'name' => 'コラム',
'singular_name' => 'コラム',
'add_new' => 'コラムを追加',
'add_new_item' => '新しいコラムを追加',
'edit_item' => 'コラムを編集',
'all_items' => 'コラム一覧',
'not_found' => 'コラムが見つかりません',
],
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-book',
'menu_position' => 7,
'supports' => [ 'title', 'editor', 'thumbnail', 'excerpt' ],
'rewrite' => [ 'slug' => TF_BASE . '/columns', 'with_front' => false ],
'show_in_rest' => true,
] );
register_post_type( 'tf_faq', [
'labels' => [
'name' => 'FAQ',
'singular_name' => 'FAQ',
'add_new' => 'FAQを追加',
'add_new_item' => '新しいFAQを追加',
'edit_item' => 'FAQを編集',
'all_items' => 'FAQ一覧',
'not_found' => 'FAQが見つかりません',
],
'public' => false,
'show_ui' => true,
'show_in_menu' => true,
'menu_icon' => 'dashicons-editor-help',
'menu_position' => 8,
'supports' => [ 'title', 'editor' ],
'show_in_rest' => true,
] );
}
/* ============================================================
2. タクソノミー登録
============================================================ */
add_action( 'init', 'tf_register_taxonomies' );
function tf_register_taxonomies() {
register_taxonomy( 'facility_area', 'facility', [
'labels' => [
'name' => 'エリア',
'singular_name' => 'エリア',
'add_new_item' => 'エリアを追加',
'edit_item' => 'エリアを編集',
],
'hierarchical' => true,
'show_in_rest' => true,
'rewrite' => [ 'slug' => TF_BASE . '/area' ],
] );
register_taxonomy( 'facility_type', 'facility', [
'labels' => [
'name' => '施設種別',
'singular_name' => '施設種別',
'add_new_item' => '種別を追加',
],
'hierarchical' => true,
'show_in_rest' => true,
'rewrite' => [ 'slug' => TF_BASE . '/type' ],
] );
register_taxonomy( 'facility_condition', 'facility', [
'labels' => [
'name' => '対応条件',
'singular_name' => '対応条件',
'add_new_item' => '条件を追加',
],
'hierarchical' => false,
'show_in_rest' => true,
'rewrite' => [ 'slug' => TF_BASE . '/condition' ],
] );
register_taxonomy( 'case_category', 'tf_case', [
'labels' => [
'name' => '事例カテゴリー',
'singular_name' => '事例カテゴリー',
'add_new_item' => 'カテゴリーを追加',
],
'hierarchical' => true,
'show_in_rest' => true,
'rewrite' => false,
] );
register_taxonomy( 'column_category', 'tf_column', [
'labels' => [
'name' => 'コラムカテゴリー',
'singular_name' => 'コラムカテゴリー',
'add_new_item' => 'カテゴリーを追加',
],
'hierarchical' => true,
'show_in_rest' => true,
'rewrite' => false,
] );
}
/* ============================================================
3. メタボックス
============================================================ */
add_action( 'add_meta_boxes', 'tf_add_meta_boxes' );
function tf_add_meta_boxes() {
add_meta_box( 'tf_facility_info', '施設基本情報', 'tf_facility_info_cb', 'facility', 'normal', 'high' );
add_meta_box( 'tf_facility_fee', '費用情報', 'tf_facility_fee_cb', 'facility', 'normal', 'high' );
add_meta_box( 'tf_facility_cond', '✅ 対応状況', 'tf_facility_cond_cb', 'facility', 'normal', 'default' );
add_meta_box( 'tf_facility_seo', 'SEO設定', 'tf_facility_seo_cb', 'facility', 'side', 'default' );
add_meta_box( 'tf_facility_disp', '⭐ 表示設定', 'tf_facility_disp_cb', 'facility', 'side', 'high' );
add_meta_box( 'tf_case_detail', '事例詳細', 'tf_case_detail_cb', 'tf_case', 'normal', 'high' );
add_meta_box( 'tf_col_meta', 'コラム設定', 'tf_col_meta_cb', 'tf_column','side', 'high' );
add_meta_box( 'tf_faq_answer', '回答', 'tf_faq_answer_cb', 'tf_faq', 'normal', 'high' );
}
function tf_facility_info_cb( $post ) {
wp_nonce_field( 'tf_facility_save', 'tf_nonce' );
$m = get_post_meta( $post->ID );
$get = fn( $k ) => $m[ $k ][0] ?? '';
$areas = [ 'hitachi' => '日立市', 'mito' => '水戸市', 'hitachinaka' => 'ひたちなか市', 'other' => 'その他(茨城県)' ];
$types = [ '介護付き有料老人ホーム', 'グループホーム', '特別養護老人ホーム', 'サービス付き高齢者向け住宅', '住宅型有料老人ホーム' ];
?>
<style>
.tf-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tf-meta-group{display:flex;flex-direction:column;gap:4px}
.tf-meta-group label{font-weight:600;font-size:13px}
.tf-meta-group input,.tf-meta-group select,.tf-meta-group textarea{width:100%;padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-size:14px}
.tf-meta-group textarea{min-height:80px}
.tf-section-title{font-size:13px;font-weight:700;color:#1F5749;margin:16px 0 8px;border-bottom:2px solid #EBF5F2;padding-bottom:4px}
</style>
<div class="tf-meta-grid">
<div class="tf-meta-group">
<label>都道府県</label>
<input name="tf_prefecture" value="<?php echo esc_attr($get('tf_prefecture') ?: '茨城県'); ?>">
</div>
<div class="tf-meta-group">
<label>市区町村</label>
<input name="tf_city" value="<?php echo esc_attr($get('tf_city')); ?>" placeholder="日立市">
</div>
<div class="tf-meta-group" style="grid-column:span 2">
<label>住所(番地まで)</label>
<input name="tf_address" value="<?php echo esc_attr($get('tf_address')); ?>" placeholder="茨城県日立市○○1-2-3">
</div>
<div class="tf-meta-group">
<label>エリアスラッグ</label>
<select name="tf_area">
<?php foreach ( $areas as $v => $l ): ?>
<option value="<?php echo esc_attr($v); ?>" <?php selected($get('tf_area'), $v); ?>><?php echo esc_html($l); ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="tf-meta-group">
<label>施設種別</label>
<select name="tf_type">
<?php foreach ( $types as $t ): ?>
<option <?php selected($get('tf_type'), $t); ?>><?php echo esc_html($t); ?></option>
<?php endforeach; ?>
</select>
</div>
<div class="tf-meta-group">
<label>運営会社名</label>
<input name="tf_operator" value="<?php echo esc_attr($get('tf_operator')); ?>">
</div>
<div class="tf-meta-group">
<label>アクセス</label>
<input name="tf_access" value="<?php echo esc_attr($get('tf_access')); ?>" placeholder="バス停「○」から徒歩5分">
</div>
<div class="tf-meta-group">
<label>電話番号</label>
<input name="tf_tel" value="<?php echo esc_attr($get('tf_tel')); ?>" placeholder="0294-00-0000">
</div>
<div class="tf-meta-group" style="grid-column:span 2">
<label>公式サイトURL</label>
<input name="tf_url" value="<?php echo esc_attr($get('tf_url')); ?>" placeholder="https://example.com">
</div>
</div>
<p class="tf-section-title">施設の特徴(1行1項目)</p>
<textarea name="tf_features" style="width:100%;min-height:80px"><?php echo esc_textarea($get('tf_features')); ?></textarea>
<p class="tf-section-title">こんな方におすすめ(1行1項目)</p>
<textarea name="tf_recommended" style="width:100%;min-height:60px"><?php echo esc_textarea($get('tf_recommended')); ?></textarea>
<?php
}
function tf_facility_fee_cb( $post ) {
$m = get_post_meta( $post->ID );
$get = fn( $k ) => $m[ $k ][0] ?? '';
?>
<div class="tf-meta-grid">
<div class="tf-meta-group"><label>月額費用(最低額)円</label><input type="number" name="tf_monthly_min" value="<?php echo esc_attr($get('tf_monthly_min')); ?>" placeholder="150000"></div>
<div class="tf-meta-group"><label>月額費用(最高額)円</label><input type="number" name="tf_monthly_max" value="<?php echo esc_attr($get('tf_monthly_max')); ?>" placeholder="220000"></div>
<div class="tf-meta-group"><label>入居一時金(最低額)円</label><input type="number" name="tf_admission_min" value="<?php echo esc_attr($get('tf_admission_min') ?: '0'); ?>"></div>
<div class="tf-meta-group"><label>入居一時金(最高額)円</label><input type="number" name="tf_admission_max" value="<?php echo esc_attr($get('tf_admission_max') ?: '0'); ?>"></div>
</div>
<?php
}
function tf_facility_cond_cb( $post ) {
$m = get_post_meta( $post->ID );
$conditions = [
'tf_cond_ninchisho' => '認知症相談可',
'tf_cond_iryo' => '医療相談可',
'tf_cond_seikatsuhogo' => '生活保護相談可',
'tf_cond_mimoto' => '身寄りなし相談可',
'tf_cond_mitatori' => '看取り相談可',
'tf_cond_fufu' => '夫婦入居相談可',
'tf_bath' => '機械浴・リフト浴対応',
];
echo '<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px">';
foreach ( $conditions as $key => $label ) {
$checked = ! empty( $m[ $key ][0] ) ? 'checked' : '';
echo "<label style='display:flex;align-items:center;gap:6px;padding:8px;background:#f5f5f5;border-radius:6px;cursor:pointer'><input type='checkbox' name='{$key}' value='1' {$checked}><span style='font-size:14px'>{$label}</span></label>";
}
echo '</div>';
}
function tf_facility_seo_cb( $post ) {
$m = get_post_meta( $post->ID );
$get = fn( $k ) => $m[ $k ][0] ?? '';
?>
<div class="tf-meta-group" style="margin-bottom:10px"><label style="font-weight:700;font-size:13px">SEOタイトル</label><input name="tf_seo_title" value="<?php echo esc_attr($get('tf_seo_title')); ?>"></div>
<div class="tf-meta-group"><label style="font-weight:700;font-size:13px">SEOディスクリプション</label><textarea name="tf_seo_desc" style="width:100%;min-height:80px"><?php echo esc_textarea($get('tf_seo_desc')); ?></textarea></div>
<?php
}
function tf_facility_disp_cb( $post ) {
$m = get_post_meta( $post->ID );
$featured = ! empty( $m['tf_featured'][0] ) ? 'checked' : '';
$order = $m['tf_order'][0] ?? 99;
?>
<div style="margin-bottom:12px"><label style="display:flex;align-items:center;gap:8px;cursor:pointer"><input type="checkbox" name="tf_featured" value="1" <?php echo $featured; ?>><span style="font-weight:700">⭐ トップページにおすすめ表示</span></label></div>
<div class="tf-meta-group"><label style="font-weight:700;font-size:13px">表示順(小さいほど上位)</label><input type="number" name="tf_order" value="<?php echo esc_attr($order); ?>" min="1" max="999"></div>
<?php
}
function tf_case_detail_cb( $post ) {
wp_nonce_field( 'tf_case_save', 'tf_case_nonce' );
$m = get_post_meta( $post->ID );
$get = fn( $k ) => $m[ $k ][0] ?? '';
$fields = [
'tf_case_subtitle' => 'サブタイトル(一覧で表示される短い説明)',
'tf_case_area' => '対応エリア(例:日立市)',
];
foreach ( $fields as $key => $label ) {
echo "<div style='margin-bottom:12px'><label style='font-weight:700;font-size:13px;display:block;margin-bottom:4px'>{$label}</label><input name='{$key}' value='" . esc_attr($get($key)) . "' style='width:100%;padding:6px 8px;border:1px solid #ccc;border-radius:4px'></div>";
}
}
function tf_col_meta_cb( $post ) {
wp_nonce_field( 'tf_col_save', 'tf_col_nonce' );
$m = get_post_meta( $post->ID );
$get = fn( $k ) => $m[ $k ][0] ?? '';
?>
<div style="margin-bottom:12px"><label style="font-weight:700;font-size:13px">読了時間(分)</label><input type="number" name="tf_read_time" value="<?php echo esc_attr($get('tf_read_time') ?: '5'); ?>" min="1" max="60" style="width:100%;padding:6px 8px;border:1px solid #ccc;border-radius:4px;margin-top:4px"></div>
<?php
}
function tf_faq_answer_cb( $post ) {
wp_nonce_field( 'tf_faq_save', 'tf_faq_nonce' );
$m = get_post_meta( $post->ID );
$answer = $m['tf_faq_answer'][0] ?? '';
$order = $m['tf_faq_order'][0] ?? 99;
?>
<div style="margin-bottom:14px"><label style="font-weight:700;font-size:13px;display:block;margin-bottom:4px">回答本文</label><textarea name="tf_faq_answer" style="width:100%;min-height:120px;padding:8px;border:1px solid #ccc;border-radius:4px"><?php echo esc_textarea($answer); ?></textarea></div>
<div><label style="font-weight:700;font-size:13px">表示順</label><input type="number" name="tf_faq_order" value="<?php echo esc_attr($order); ?>" min="1" style="width:100%;padding:6px 8px;border:1px solid #ccc;border-radius:4px;margin-top:4px"></div>
<?php
}
/* ============================================================
4. メタ保存
============================================================ */
add_action( 'save_post', 'tf_save_post_meta' );
function tf_save_post_meta( $post_id ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;
$post_type = get_post_type( $post_id );
if ( $post_type === 'facility' && isset( $_POST['tf_nonce'] )
&& wp_verify_nonce( $_POST['tf_nonce'], 'tf_facility_save' ) ) {
$text_fields = [ 'tf_prefecture','tf_city','tf_address','tf_area','tf_type','tf_operator','tf_access','tf_tel','tf_features','tf_recommended','tf_seo_title','tf_seo_desc' ];
foreach ( $text_fields as $key ) {
if ( isset( $_POST[ $key ] ) ) update_post_meta( $post_id, $key, sanitize_textarea_field( $_POST[ $key ] ) );
}
if ( isset( $_POST['tf_url'] ) ) update_post_meta( $post_id, 'tf_url', esc_url_raw( $_POST['tf_url'] ) );
$num_fields = [ 'tf_monthly_min','tf_monthly_max','tf_admission_min','tf_admission_max','tf_order' ];
foreach ( $num_fields as $key ) {
if ( isset( $_POST[ $key ] ) ) update_post_meta( $post_id, $key, absint( $_POST[ $key ] ) );
}
$checkbox_fields = [ 'tf_cond_ninchisho','tf_cond_iryo','tf_cond_seikatsuhogo','tf_cond_mimoto','tf_cond_mitatori','tf_cond_fufu','tf_bath','tf_featured' ];
foreach ( $checkbox_fields as $key ) {
update_post_meta( $post_id, $key, isset( $_POST[ $key ] ) ? 1 : 0 );
}
}
if ( $post_type === 'tf_case' && isset( $_POST['tf_case_nonce'] )
&& wp_verify_nonce( $_POST['tf_case_nonce'], 'tf_case_save' ) ) {
$case_fields = [ 'tf_case_subtitle','tf_case_area' ];
foreach ( $case_fields as $key ) {
if ( isset( $_POST[ $key ] ) ) update_post_meta( $post_id, $key, sanitize_text_field( $_POST[ $key ] ) );
}
}
if ( $post_type === 'tf_column' && isset( $_POST['tf_col_nonce'] )
&& wp_verify_nonce( $_POST['tf_col_nonce'], 'tf_col_save' ) ) {
if ( isset( $_POST['tf_read_time'] ) ) update_post_meta( $post_id, 'tf_read_time', absint( $_POST['tf_read_time'] ) );
}
if ( $post_type === 'tf_faq' && isset( $_POST['tf_faq_nonce'] )
&& wp_verify_nonce( $_POST['tf_faq_nonce'], 'tf_faq_save' ) ) {
if ( isset( $_POST['tf_faq_answer'] ) ) update_post_meta( $post_id, 'tf_faq_answer', sanitize_textarea_field( $_POST['tf_faq_answer'] ) );
if ( isset( $_POST['tf_faq_order'] ) ) update_post_meta( $post_id, 'tf_faq_order', absint( $_POST['tf_faq_order'] ) );
}
}
/* ============================================================
5. ポータルページ判定
============================================================ */
function tf_is_portal_page() {
if ( is_singular( [ 'facility', 'tf_case', 'tf_column', 'tf_faq' ] ) ) return true;
if ( is_post_type_archive( [ 'facility', 'tf_case', 'tf_column' ] ) ) return true;
if ( is_tax( [ 'facility_area', 'facility_type', 'facility_condition', 'case_category', 'column_category' ] ) ) return true;
if ( is_page() ) {
$page = get_queried_object();
if ( ! $page ) return false;
$slug = $page->post_name;
$portal_slugs = [ TF_BASE, 'guide', 'faq', 'about', 'contact' ];
if ( in_array( $slug, $portal_slugs, true ) ) return true;
if ( $page->post_parent ) {
$parent = get_post( $page->post_parent );
if ( $parent && $parent->post_name === TF_BASE ) return true;
}
}
$uri = $_SERVER['REQUEST_URI'] ?? '';
if ( strpos( $uri, '/' . TF_BASE ) !== false ) return true;
return false;
}
/* ============================================================
6. CSSエンキュー(ポータルページのみ)
============================================================ */
add_action( 'wp_enqueue_scripts', 'tf_enqueue_portal_css' );
// One-time coord fix
if(!get_post_meta(3508,'tf_lat',true)){update_post_meta(3508,'tf_lat','36.540745');update_post_meta(3508,'tf_lng','140.565491');update_post_meta(3508,'tf_city','常陸太田市');update_post_meta(3508,'tf_address','茨城県常陸太田市亀作町481-1');}
function tf_enqueue_portal_css() {
if ( ! tf_is_portal_page() ) return;
wp_enqueue_style( 'noto-sans-jp',
'https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800;900&display=swap',
[], null
);
wp_enqueue_style( 'tf-portal', TF_PLUGIN_URL . 'assets/portal.css', [], TF_VERSION );
}
/* ============================================================
7. テンプレート注入
============================================================ */
add_filter( 'template_include', 'tf_template_include', 99 );
function tf_template_include( $template ) {
$tpl = TF_PLUGIN_DIR . 'templates/';
if ( is_singular( 'facility' ) ) return $tpl . 'single-facility.php';
if ( is_post_type_archive( 'facility' ) ) return $tpl . 'archive-facility.php';
if ( is_tax( 'facility_area' ) ) return $tpl . 'archive-facility.php';
if ( is_tax( 'facility_condition' ) ) return $tpl . 'archive-facility.php';
if ( is_tax( 'facility_type' ) ) return $tpl . 'archive-facility.php';
if ( is_singular( 'tf_case' ) ) return $tpl . 'single-tf_case.php';
if ( is_post_type_archive( 'tf_case' ) ) return $tpl . 'archive-tf_case.php';
if ( is_singular( 'tf_column' ) ) return $tpl . 'single-tf_column.php';
if ( is_post_type_archive( 'tf_column' ) ) return $tpl . 'archive-tf_column.php';
if ( is_page() ) {
$page = get_queried_object();
$slug = $page ? $page->post_name : '';
$parent_slug = '';
if ( $page && $page->post_parent ) {
$parent = get_post( $page->post_parent );
$parent_slug = $parent ? $parent->post_name : '';
}
$map = [
TF_BASE => 'portal-home.php',
'guide' => 'page-guide.php',
'faq' => 'page-faq.php',
'about' => 'page-about.php',
'contact' => 'page-contact.php',
'しまナーシングホームガーデン' => 'https://goodbyinc.com/wp-content/uploads/2026/05/kaigo-mito-01.jpg',
'えみてる水戸見川' => 'https://goodbyinc.com/wp-content/uploads/2026/05/gh-mito-01.jpg',
'ドルチェ水戸大塚' => 'https://goodbyinc.com/wp-content/uploads/2026/05/sakoju-hitachinaka-01.jpg',
'ドルチェ水戸姫子' => 'https://goodbyinc.com/wp-content/uploads/2026/05/sakoju-hitachinaka-02.jpg',
'まごころの家水戸駅南' => 'https://goodbyinc.com/wp-content/uploads/2026/05/20221212162141.jpg',
'まごころの家水戸堀町' => 'https://goodbyinc.com/wp-content/uploads/2026/05/20171108054021.jpg',
];
// Auto-create FAQ template if missing
if ( $slug === 'faq' && isset( $map['faq'] ) && !file_exists( $tpl . 'page-faq.php' ) ) {
@file_put_contents( $tpl . 'page-faq.php', "<?php if(!defined('ABSPATH'))exit;\ntf_render_faq_page();\n" );
}
if ( isset( $map[ $slug ] ) && file_exists( $tpl . $map[ $slug ] ) ) {
return $tpl . $map[ $slug ];
}
// 子ページも判定(parent = tunagu-fukushi)
if ( $parent_slug === TF_BASE && isset( $map[ $slug ] ) && file_exists( $tpl . $map[ $slug ] ) ) {
return $tpl . $map[ $slug ];
}
}
return $template;
}
/* ============================================================
8. ポータルヘッダー関数
============================================================ */
/* ============================================================
FAQ ページテンプレート
============================================================ */
function tf_render_faq_page() {
$base = home_url( '/' . TF_BASE . '/' );
$desc = '施設探し・入居相談に関するよくある質問。費用・手続き・無料相談の疑問に専門スタッフがお答えします。茨城県(日立・水戸・ひたちなか)対応。';
tf_portal_header( 'よくある質問', $desc );
$faqs_db = get_posts(['post_type'=>'tf_faq','posts_per_page'=>-1,'post_status'=>'publish','meta_key'=>'tf_faq_order','orderby'=>'meta_value_num','order'=>'ASC']);
$faqs_inline = [
['q'=>'相談は本当に無料ですか?','a'=>'はい、すべて無料です。施設入居が決まった際に施設側からご紹介料をいただくビジネスモデルです。ご家族の費用負担は一切ありません。'],
['q'=>'どんな施設を紹介してもらえますか?','a'=>'サービス付き高齢者向け住宅・介護付き有料老人ホーム・グループホーム・住宅型有料老人ホームなど幅広くご紹介できます。'],
['q'=>'日立市・水戸市以外でも対応していますか?','a'=>'電話・オンライン相談は全国対応です。見学同行は日立〜水戸エリアが中心ですが、まずはご相談ください。'],
['q'=>'要介護認定を受けていなくても相談できますか?','a'=>'はい、認定前でもご相談いただけます。認定申請の手続きサポートも行っています。'],
['q'=>'本人が施設入居を嫌がっています','a'=>'よくあるご状況です。「見学だけしてみる」「体験入居を試す」など段階的なアプローチをご提案します。'],
['q'=>'月々の費用はいくらかかりますか?','a'=>'サービス付き高齢者向け住宅で月8〜15万円、介護付き有料老人ホームで月15〜30万円が目安です。入居一時金なしの施設もあります。'],
['q'=>'急いで施設を探しています。すぐ見つかりますか?','a'=>'緊急対応可能です。当日中に候補施設をご提案できるケースも多くあります。まずはお電話ください。'],
['q'=>'見学に同行してもらえますか?','a'=>'はい、無料で見学に同行します。専門家の視点で施設の雰囲気・ケアの質・費用の透明性を一緒に確認します。'],
['q'=>'生活保護を受けていても施設に入れますか?','a'=>'はい、入居できます。生活保護対応施設のご紹介・ケースワーカーとの連携も含めてサポートします。'],
['q'=>'入居後のサポートはしてもらえますか?','a'=>'入居後も必要に応じてサポートします。「施設に馴染めない」「環境を変えたい」などのご相談も受け付けています。'],
];
$faqs = $faqs_db ? array_map(function($p){return['q'=>get_the_title($p->ID),'a'=>get_post_meta($p->ID,'tf_faq_answer',true)];}, $faqs_db) : $faqs_inline;
?>
<style>
.faq-hero{background:linear-gradient(135deg,#e8f5f2,#c5e8df);padding:48px 0 36px;text-align:center}
.faq-hero h1{font-size:1.8rem;font-weight:800;color:#1a2a24;margin:0 0 10px}
.faq-hero p{font-size:.95rem;color:#555;margin:0}
.faq-wrap{max-width:760px;margin:0 auto;padding:48px 20px}
.faq-item{border:1px solid #e0ede9;border-radius:8px;margin-bottom:12px;overflow:hidden}
.faq-q{background:#f4fbf9;padding:16px 20px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.95rem;line-height:1.5;color:#1a2a24}
.faq-q:hover{background:#e8f5f2}
.faq-q .faq-icon{color:var(--p);font-size:1.3rem;flex-shrink:0;margin-left:12px;transition:transform .25s}
.faq-item.open .faq-q .faq-icon{transform:rotate(45deg)}
.faq-a{display:none;padding:16px 20px;font-size:.9rem;line-height:1.85;color:#444;background:#fff;border-top:1px solid #eee}
.faq-item.open .faq-a{display:block}
.faq-bc{background:#f8f8f8;border-left:4px solid var(--p);padding:10px 16px;margin-bottom:28px;font-size:.85rem;color:#555}
</style>
<section class="faq-hero"><div class="con"><h1>よくある質問</h1><p>施設探し・入居相談に関するご質問にお答えします</p></div></section>
<div class="faq-wrap">
<p class="faq-bc"><a href="<?php echo esc_url($base);?>" style="color:var(--p)">トップ</a> › よくある質問</p>
<p style="font-size:.95rem;color:#555;margin-bottom:32px">以下のQ&Aで解決しない場合は、お気軽にお電話・フォームでご相談ください。</p>
<?php foreach($faqs as $f): if(!$f['q']||!$f['a'])continue; ?>
<div class="faq-item">
<div class="faq-q"><?php echo esc_html($f['q']); ?><span class="faq-icon">+</span></div>
<div class="faq-a"><?php echo nl2br(esc_html($f['a'])); ?></div>
</div>
<?php endforeach; ?>
<div style="background:linear-gradient(135deg,#e8f5f2,#c5e8df);border-radius:12px;padding:32px;text-align:center;margin-top:48px">
<h3 style="font-size:1.2rem;font-weight:800;color:#1a2a24;margin:0 0 10px">疑問が解決しなかった方へ</h3>
<p style="color:#555;margin:0 0 20px;font-size:.95rem">専門スタッフが無料でお答えします</p>
<a href="tel:09014807174" style="display:inline-block;background:var(--p);color:#fff;padding:12px 24px;border-radius:8px;font-weight:700;text-decoration:none;margin:4px">090-1480-7174</a>
<a href="<?php echo esc_url($base.'contact/');?>" style="display:inline-block;background:#fff;color:var(--p);border:2px solid var(--p);padding:12px 24px;border-radius:8px;font-weight:700;text-decoration:none;margin:4px">フォームで相談</a>
</div>
</div>
<script>document.querySelectorAll('.faq-q').forEach(function(q){q.addEventListener('click',function(){this.closest('.faq-item').classList.toggle('open');});});</script>
<?php tf_portal_footer(); }
function tf_portal_header( $page_title = '', $page_desc = '', $og_image = '', $extra_head = '' ) {
$base = home_url( '/' . TF_BASE . '/' );
if ( $page_title ) {
$seo_title = esc_html( $page_title ) . ' | つなぐ、ふくし。';
} else {
$seo_title = 'つなぐ、ふくし。 | 高齢者住宅・老人ホーム相談サービス';
}
$og_desc = $page_desc ?: 'つなぐ、ふくし。は茨城県(日立・水戸・ひたちなか)エリアの高齢者住宅・老人ホーム無料相談サービスです。';
$og_url = esc_url( ( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
$og_img = $og_image ?: '';
?>
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php echo $seo_title; ?></title>
<meta name="description" content="<?php echo esc_attr($og_desc); ?>">
<?php if($og_img):?><meta property="og:image" content="<?php echo esc_url($og_img);?>"><?php endif;?>
<meta property="og:type" content="website">
<meta property="og:url" content="<?php echo $og_url; ?>">
<meta property="og:title" content="<?php echo esc_attr($seo_title); ?>">
<meta property="og:description" content="<?php echo esc_attr($og_desc); ?>">
<meta property="og:site_name" content="つなぐ、ふくし。">
<meta name="twitter:card" content="summary_large_image">
<?php wp_head(); ?>
<?php if($extra_head) echo $extra_head; ?>
</head>
<body <?php body_class( 'tunagu-portal' ); ?>>
<?php wp_body_open(); ?>
<header class="site-header">
<div class="hdr-inner">
<a href="<?php echo esc_url( $base ); ?>" class="logo">
<span class="logo-icon" style="width:auto;height:auto;background:none;border-radius:0;padding:0;"><img src="https://goodbyinc.com/wp-content/uploads/2025/09/S__130793620-2.jpg" alt="Good By" style="height:38px;width:auto;vertical-align:middle;display:block;"></span>
<span class="logo-text">
<span class="logo-m">つなぐ、ふくし。</span>
<span class="logo-s">高齢者住宅・老人ホーム相談サービス</span>
</span>
</a>
<nav class="hdr-nav">
<a href="<?php echo esc_url( $base . 'facilities/' ); ?>" class="nav-a">施設を探す</a>
<div class="nav-drop" style="position:relative;display:inline-block">
<a class="nav-a nav-drop-toggle" style="cursor:pointer">エリアから探す ▾</a>
<div class="nav-drop-menu" style="display:none;position:absolute;top:100%;left:0;background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 4px 20px rgba(0,0,0,.12);min-width:180px;z-index:1000;padding:8px 0">
<a href="<?php echo esc_url( $base . 'area/hitachi/' ); ?>" style="display:block;padding:10px 18px;font-size:.9rem;color:#333;text-decoration:none;white-space:nowrap">日立市の施設</a>
<a href="<?php echo esc_url( $base . 'area/mito/' ); ?>" style="display:block;padding:10px 18px;font-size:.9rem;color:#333;text-decoration:none;white-space:nowrap">水戸市の施設</a>
<a href="<?php echo esc_url( $base . 'area/tokai/' ); ?>" style="display:block;padding:10px 18px;font-size:.9rem;color:#333;text-decoration:none;white-space:nowrap">東海村の施設</a>
<a href="<?php echo esc_url( $base . 'area/hitachinaka/' ); ?>" style="display:block;padding:10px 18px;font-size:.9rem;color:#333;text-decoration:none;white-space:nowrap">ひたちなか市の施設</a>
</div>
</div>
<a href="<?php echo esc_url( $base . 'guide/' ); ?>" class="nav-a">初めての方へ</a>
<a href="<?php echo esc_url( $base . 'cases/' ); ?>" class="nav-a">相談事例</a>
<a href="<?php echo esc_url( $base . 'columns/' ); ?>" class="nav-a">コラム</a>
<a href="<?php echo esc_url( $base . 'faq/' ); ?>" class="nav-a">よくある質問</a>
<a href="<?php echo esc_url( $base . 'contact/' ); ?>" class="btn-cta">入居相談する(無料)</a>
</nav>
<div class="ham" onclick="document.getElementById('tf-mn').classList.toggle('open')" aria-label="メニューを開く">
<span></span><span></span><span></span>
</div>
</div>
</header>
<style>
/* ===== スティッキーヘッダー ===== */
.site-header{
position:sticky;top:0;z-index:500;
background:#fff;
transition:box-shadow .3s,background .3s;
}
.site-header.scrolled{
box-shadow:0 2px 16px rgba(31,87,73,.13);
}
</style>
<script>
(function(){
// スティッキーヘッダー:スクロールで影追加
var hdr=document.querySelector('.site-header');
if(hdr){
window.addEventListener('scroll',function(){
hdr.classList.toggle('scrolled',window.scrollY>10);
},{passive:true});
}
var toggle=document.querySelector('.nav-drop-toggle');
var menu=document.querySelector('.nav-drop-menu');
if(!toggle||!menu)return;
toggle.addEventListener('click',function(e){
e.preventDefault();
menu.style.display=menu.style.display==='block'?'none':'block';
});
document.addEventListener('click',function(e){
if(!e.target.closest('.nav-drop'))menu.style.display='none';
});
})();
</script>
<nav class="mob-nav" id="tf-mn">
<a href="<?php echo esc_url( $base . 'facilities/' ); ?>" class="mob-a">施設を探す</a>
<a href="<?php echo esc_url( $base . 'guide/' ); ?>" class="mob-a">初めての方へ</a>
<a href="<?php echo esc_url( $base . 'cases/' ); ?>" class="mob-a">相談事例</a>
<a href="<?php echo esc_url( $base . 'columns/' ); ?>" class="mob-a">コラム</a>
<a href="<?php echo esc_url( $base . 'faq/' ); ?>" class="mob-a">よくある質問</a>
<a href="<?php echo esc_url( $base . 'area/hitachi/' ); ?>" class="mob-a">日立市の施設</a>
<a href="<?php echo esc_url( $base . 'area/mito/' ); ?>" class="mob-a">水戸市の施設</a>
<a href="<?php echo esc_url( $base . 'area/tokai/' ); ?>" class="mob-a">東海村の施設</a>
<a href="<?php echo esc_url( $base . 'area/hitachinaka/' ); ?>" class="mob-a">ひたちなか市の施設</a>
<a href="<?php echo esc_url( $base . 'contact/' ); ?>" class="mob-a" style="color:var(--a);font-weight:700;border-top:2px solid var(--pb);margin-top:8px;padding-top:16px">📞 入居相談する(無料)</a>
</nav>
<?php
}
/* ============================================================
9. ポータルフッター関数
============================================================ */
function tf_portal_footer() {
$base = home_url( '/' . TF_BASE . '/' );
?>
<style>.final-cta h2{color:#fff!important}.final-cta p{color:rgba(255,255,255,.9)!important}</style>
<section class="final-cta">
<div class="con">
<h2>まずは、話を聞いてもらうだけで大丈夫</h2>
<p>施設探しより先に、現在の状況を整理しませんか。<br>相談は無料・全国対応。複雑な事情もOKです。</p>
<div class="cta-btns">
<a href="<?php echo esc_url( $base . 'contact/' ); ?>" class="btn btn-p btn-lg">今の状況を相談する(無料)</a>
<a href="<?php echo esc_url( $base . 'guide/' ); ?>" class="btn btn-lg" style="background:rgba(255,255,255,.15);border:2px solid rgba(255,255,255,.6);color:#fff">初めての方へ</a>
</div>
</div>
</section>
<footer class="tf-footer">
<div class="tf-ft-inner">
<div class="tf-ft-grid">
<div>
<a href="<?php echo esc_url( $base ); ?>" class="tf-ft-logo-row">
<span class="tf-ft-logo-icon"><img src="https://goodbyinc.com/wp-content/uploads/2025/09/S__130793620-2.jpg" alt="Good By" style="height:38px;width:auto;vertical-align:middle;display:block;"></span>
<span class="tf-ft-logo-name">つなぐ、ふくし。</span>
</a>
<p class="tf-ft-tagline">事情込みで相談できる、高齢者施設の相談窓口。<br>日立・水戸エリアは見学同行・引越し支援も対応。</p>
<div class="tf-ft-tel"><p><strong>TEL:</strong><a href="tel:09014807174" style="color:inherit;text-decoration:none">090-1480-7174</a></p><p style="font-size:.8rem;opacity:.7;margin-top:2px">平日 9:00〜18:00(土日要相談)</p></div>
<a href="<?php echo esc_url( $base . 'contact/' ); ?>" class="tf-ft-cta">無料で相談する →</a>
</div>
<div>
<p class="tf-ft-hd">施設を探す</p>
<ul class="tf-ft-links">
<li><a href="<?php echo esc_url( $base . 'facilities/' ); ?>">全施設一覧</a></li>
<li><a href="<?php echo esc_url( home_url( '/' . TF_BASE . '/area/hitachi/' ) ); ?>">日立市の施設</a></li>
<li><a href="<?php echo esc_url( home_url( '/' . TF_BASE . '/area/mito/' ) ); ?>">水戸市の施設</a></li>
<li><a href="<?php echo esc_url( home_url( '/' . TF_BASE . '/area/tokai/' ) ); ?>">東海村の施設</a></li>
<li><a href="<?php echo esc_url( home_url( '/' . TF_BASE . '/area/hitachinaka/' ) ); ?>">ひたちなか市の施設</a></li>
<li><a href="<?php echo esc_url( home_url( '/' . TF_BASE . '/condition/ninchisho/' ) ); ?>">認知症対応施設</a></li>
<li><a href="<?php echo esc_url( home_url( '/' . TF_BASE . '/condition/seikatsuhogo/' ) ); ?>">生活保護対応施設</a></li>
</ul>
</div>
<div>
<p class="tf-ft-hd">サービス・情報</p>
<ul class="tf-ft-links">
<li><a href="<?php echo esc_url( $base . 'guide/' ); ?>">初めての方へ</a></li>
<li><a href="<?php echo esc_url( $base . 'cases/' ); ?>">相談事例</a></li>
<li><a href="<?php echo esc_url( $base . 'columns/' ); ?>">コラム・お役立ち情報</a></li>
<li><a href="<?php echo esc_url( $base . 'faq/' ); ?>">よくある質問</a></li>
</ul>
</div>
<div>
<p class="tf-ft-hd">会社情報</p>
<ul class="tf-ft-links">
<li><a href="<?php echo esc_url( $base . 'about/' ); ?>">運営者情報</a></li>
<li><a href="<?php echo esc_url( $base . 'contact/' ); ?>">お問い合わせ</a></li>
</ul>
<div class="tf-ft-badge"><span>✓ 相談無料</span><span>✓ 全国対応</span><span>✓ 複雑な事情OK</span></div>
</div>
</div>
<div class="tf-ft-divider"></div>
<div class="tf-ft-btm">
<p class="tf-ft-note">ⓘ 相談は完全無料です。入居が決まった場合のみ、施設側からご紹介料をいただいています。</p>
<p class="tf-ft-copy">© <?php echo date('Y'); ?> つなぐ、ふくし。All rights reserved.</p>
</div>
</div>
</footer>
<script>
document.querySelectorAll('.faq-q').forEach(function(q){
q.addEventListener('click',function(){this.closest('.faq-item').classList.toggle('open');});
});
</script>
<!-- Compare Bar -->
<div id='tf-cmp-bar'><span class='cmp-hint'>施設を比較中 (最大3件)</span>
<div class='cmp-items' id='tf-cmp-items'></div>
<button class='cmp-go' id='tf-cmp-go' onclick='tfCmpShow()' disabled>比較する</button>
<button onclick='tfCmpClearAll()' style='background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:.8rem'>クリア</button>
</div>
<div id='tf-cmp-modal'>
<div class='cmp-box'>
<div class='cmp-head'><span style='font-weight:700;font-size:1.1rem'>施設比較</span><button class='cmp-close' onclick='tfCmpClose()'>✕</button></div>
<div style='overflow-x:auto'><table id='tf-cmp-table'></table></div>
</div>
</div>
<script>
var _tfCmp=[];
function tfCmpToggle(btn){
var id=btn.dataset.id,name=btn.dataset.name,type=btn.dataset.type,fee=btn.dataset.fee,loc=btn.dataset.loc,addr=btn.dataset.addr;
var idx=_tfCmp.findIndex(function(f){return f.id===id;});
if(idx>-1){_tfCmp.splice(idx,1);btn.classList.remove('active');}
else if(_tfCmp.length<3){_tfCmp.push({id:id,name:name,type:type,fee:fee,loc:loc,addr:addr});btn.classList.add('active');}
else{alert('比較できるのは最大3施設です');return;}
tfCmpRender();
}
function tfCmpRender(){
var bar=document.getElementById('tf-cmp-bar');
var items=document.getElementById('tf-cmp-items');
var go=document.getElementById('tf-cmp-go');
if(_tfCmp.length===0){bar.classList.remove('visible');return;}
bar.classList.add('visible');
items.innerHTML=_tfCmp.map(function(f){
return '<span class="cmp-chip">'+f.name+'<button data-rid="'+f.id+'" onclick="tfCmpRemove(this.dataset.rid)">✕</button></span>';
}).join('');
go.disabled=_tfCmp.length<2;
}
function tfCmpRemove(id){
_tfCmp=_tfCmp.filter(function(f){return f.id!==String(id);});
document.querySelectorAll('.tf-cmp-btn').forEach(function(b){if(b.dataset.id===String(id))b.classList.remove('active');});
tfCmpRender();
}
function tfCmpClearAll(){
_tfCmp=[];
document.querySelectorAll('.tf-cmp-btn.active').forEach(function(b){b.classList.remove('active');});
tfCmpRender();
}
function tfCmpShow(){
var tbl=document.getElementById('tf-cmp-table');
var rows=[['施設名'],['種別'],['料金'],['エリア'],['住所']];
_tfCmp.forEach(function(f){rows[0].push(f.name);rows[1].push(f.type);rows[2].push(f.fee||'要問合せ');rows[3].push(f.loc);rows[4].push(f.addr||'要問合せ');});
tbl.innerHTML=rows.map(function(r){return '<tr>'+r.map(function(c,i){return i===0?'<th>'+c+'</th>':'<td>'+c+'</td>';}).join('')+'</tr>';}).join('');
document.getElementById('tf-cmp-modal').style.display='flex';
}
function tfCmpClose(){document.getElementById('tf-cmp-modal').style.display='none';}
</script>
<?php wp_footer(); ?>
</body>
</html>
<?php
}
/* ============================================================
10. ヘルパー関数
============================================================ */
function tf_format_fee( $min, $max, $html = true ) {
$min = (int) $min;
$max = (int) $max;
if ( ! $min && ! $max ) return '未定';
if ( $min === $max || ! $max ) {
$base = '月額 ' . number_format( $min ) . '円';
} else {
$base = '月額 ' . number_format( $min ) . '〜' . number_format( $max ) . '円';
}
if ( ! $html ) return $base;
return $base . '<br><small class="fac-fee-note" style="font-size:.75em;font-weight:normal;color:#666;">+介護・医療保険自己負担分</small>';
}
function tf_condition_badges( $post_id ) {
$conditions = [
'tf_cond_ninchisho' => '認知症相談可',
'tf_cond_iryo' => '医療相談可',
'tf_cond_mitatori' => '看取り相談可',
'tf_cond_seikatsuhogo' => '生活保護相談可',
'tf_cond_mimoto' => '身寄りなし相談可',
'tf_cond_fufu' => '夫婦入居相談可',
'tf_bath' => '機械浴対応',
];
$out = '';
foreach ( $conditions as $key => $label ) {
if ( get_post_meta( $post_id, $key, true ) ) {
$out .= '<span class="badge">' . esc_html( $label ) . '</span>';
}
}
return $out;
}
function tf_type_css_class( $type ) {
$map = [
'介護付き有料老人ホーム' => 'fac-type-kaigo',
'グループホーム' => 'fac-type-group',
'特別養護老人ホーム' => 'fac-type-tokuyou',
'サービス付き高齢者向け住宅' => 'fac-type-sakoujuu',
'住宅型有料老人ホーム' => 'fac-type-juutaku',
];
return $map[$type] ?? 'fac-type-kaigo';
}
function tf_facility_card( $post_id ) {
$type = get_post_meta( $post_id, 'tf_type', true );
$city = get_post_meta( $post_id, 'tf_city', true );
$pref = get_post_meta( $post_id, 'tf_prefecture', true ) ?: '茨城県';
$fee_min = get_post_meta( $post_id, 'tf_monthly_min', true );
$fee_max = get_post_meta( $post_id, 'tf_monthly_max', true );
$img = get_the_post_thumbnail( $post_id, 'medium', [ 'class' => '' ] );
$badges = tf_condition_badges( $post_id );
$type_cls = tf_type_css_class( $type );
ob_start();
?>
<a href="<?php echo esc_url( get_permalink( $post_id ) ); ?>" class="fac-card">
<div class="fac-img"><?php $tf_purl = tf_get_facility_photo_url( get_the_title( $post_id ) ); echo $img ?: '<img src="' . ( $tf_purl ?: 'https://picsum.photos/seed/fac' . $post_id . '/600/350' ) . '" alt="" style="width:100%;height:175px;object-fit:cover" loading="lazy">'; ?></div>
<div class="fac-body">
<?php if ( $type ): ?><span class="fac-type <?php echo esc_attr($type_cls); ?>"><?php echo esc_html($type); ?></span><?php endif; ?>
<p class="fac-name"><?php echo esc_html( get_the_title( $post_id ) ); ?></p>
<p class="fac-loc"><?php echo esc_html( $pref . ' ' . $city ); ?></p>
<p class="fac-fee"><?php echo tf_format_fee( $fee_min, $fee_max ); ?></p>
<?php if ( $badges ): ?><div class="badges"><?php echo $badges; ?></div><?php endif; ?>
<span class="fac-cta">詳細を見る →</span>
<?php echo '<button class="tf-cmp-btn" data-id="'.esc_attr($post_id).'" data-name="'.esc_attr(get_the_title($post_id)).'" data-type="'.esc_attr($type).'" data-fee="'.($fee_min ? intval($fee_min).intval($fee_max) : '0').'" data-loc="'.esc_attr($pref.$city).'" data-addr="'.esc_attr(get_post_meta($post_id,'tf_address',true)).'" onclick="event.preventDefault();event.stopPropagation();tfCmpToggle(this)">✔ 比較に追加</button>'; ?>
</div>
</a>
<?php
return ob_get_clean();
}
function tf_breadcrumb( $items = [] ) {
if ( empty( $items ) ) return;
array_unshift( $items, [ 'label' => 'トップ', 'url' => home_url( '/' . TF_BASE . '/' ) ] );
echo '<div class="bc"><div class="bc-in">';
$sep = '<span class="bc-sep">›</span>';
$parts = [];
foreach ( $items as $i => $item ) {
if ( ! empty( $item['url'] ) && $i < count( $items ) - 1 ) {
$parts[] = '<a href="' . esc_url( $item['url'] ) . '" class="bc-a">' . esc_html( $item['label'] ) . '</a>';
} else {
$parts[] = '<span>' . esc_html( $item['label'] ) . '</span>';
}
}
echo implode( $sep, $parts );
echo '</div></div>';
}
function tf_pagination() {
global $wp_query;
$big = 999999;
$links = paginate_links( [
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $wp_query->max_num_pages,
'type' => 'array',
'prev_text' => '‹',
'next_text' => '›',
] );
if ( $links ) {
echo '<div class="pag">';
foreach ( $links as $link ) {
echo str_replace( 'page-numbers current', 'cur', $link );
}
echo '</div>';
}
}
/* ============================================================
11. プラグイン有効化:固定ページ自動作成
============================================================ */
register_activation_hook( __FILE__, 'tf_on_activate' );
function tf_on_activate() {
tf_register_post_types();
tf_register_taxonomies();
// ポータルトップページ
$home_id = tf_get_or_create_page( 'つなぐ、ふくし。', TF_BASE, 0, 'publish' );
// 子ページ
$child_pages = [
[ 'title' => '初めての方へ(ご利用ガイド)', 'slug' => 'guide' ],
[ 'title' => 'よくある質問', 'slug' => 'faq' ],
[ 'title' => '運営者情報', 'slug' => 'about' ],
[ 'title' => 'お問い合わせ', 'slug' => 'contact' ],
];
foreach ( $child_pages as $p ) {
tf_get_or_create_page( $p['title'], $p['slug'], $home_id, 'publish' );
}
flush_rewrite_rules();
}
function tf_get_or_create_page( $title, $slug, $parent_id = 0, $status = 'publish' ) {
$args = [
'name' => $slug,
'post_type' => 'page',
'post_status' => 'any',
'numberposts' => 1,
];
if ( $parent_id ) $args['post_parent'] = $parent_id;
$pages = get_posts( $args );
if ( $pages ) return $pages[0]->ID;
return wp_insert_post( [
'post_title' => $title,
'post_name' => $slug,
'post_type' => 'page',
'post_status' => $status,
'post_parent' => $parent_id,
'post_content' => '',
] );
}
register_deactivation_hook( __FILE__, function() {
flush_rewrite_rules();
} );
/* ============================================================
12. サンプルデータ管理画面
============================================================ */
add_action( 'admin_menu', 'tf_add_sample_data_menu' );
function tf_add_sample_data_menu() {
add_submenu_page(
'edit.php?post_type=facility',
'サンプルデータ作成',
'サンプルデータ作成',
'manage_options',
'tf-sample-data',
'tf_sample_data_page'
);
}
function tf_sample_data_page() {
$done = [];
if ( isset( $_POST['tf_create_sample'] ) && check_admin_referer( 'tf_sample_data_nonce' ) ) {
$done = tf_create_all_sample_data();
}
?>
<div class="wrap">
<h1>サンプルデータ作成</h1>
<p style="color:#666">施設・相談事例・コラム・FAQのサンプルデータを一括作成します。</p>
<?php if ( $done ): ?>
<div class="notice notice-success is-dismissible"><p>✅ 作成済み:<strong><?php echo implode( '、', array_map( 'esc_html', $done ) ); ?></strong></p></div>
<?php endif; ?>
<form method="post">
<?php wp_nonce_field( 'tf_sample_data_nonce' ); ?>
<table class="widefat" style="max-width:500px;margin-top:16px">
<tbody>
<tr><td>施設(94件)</td><td>日立市35・東海村5・ひたちなか市23・水戸市32・あいらいふ連携施設含む</td></tr>
<tr><td>相談事例(8件)</td><td>退院後・認知症・生活保護・身寄りなし・夫婦・医療・看取り</td></tr>
<tr><td>コラム(7件)</td><td>施設の種類・認知症・費用・制度・入居手続き</td></tr>
<tr><td>FAQ(5件)</td><td>よくある質問と回答</td></tr>
</tbody>
</table>
<p style="margin-top:16px">
<input type="submit" name="tf_create_sample" class="button button-primary button-large" value="サンプルデータを作成する">
</p>
</form>
</div>
<?php
}
function tf_create_all_sample_data() {
$created = [];
$facilities = [
/* =========================================
日立市 (17件)
========================================= */
[ 'title'=>'ふるさとホーム日立', 'content'=>'十王駅から車10分、日立市川尻町にあるサービス付き高齢者向け住宅です。夜間対応と機械浴・特殊浴を完備し、要介護度の高い方も安心してご入居いただけます。デイサービスも併設しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市川尻町3-17-13','tf_access'=>'十王駅から車10分','tf_room_size'=>'18.03~18.21㎡','tf_monthly_min'=>143750,'tf_monthly_max'=>143750,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n夜間対応\n機械浴・特殊浴あり",'tf_comment'=>'夜間対応と機械浴・特殊浴完備で重度の方も安心','tf_cond_ninchisho'=>'1','tf_cond_iryo'=>'1','tf_featured'=>'1','tf_order'=>1] ],
[ 'title'=>'まごころの家日立大久保', 'content'=>'常陸多賀駅から車9分。看取り対応と夫婦部屋を完備したサービス付き高齢者向け住宅です。月額98,900円というリーズナブルな料金設定と、丁寧な介護が特長です。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市大久保町5-4-24','tf_access'=>'常陸多賀駅から車9分','tf_room_size'=>'18.11~26.08㎡','tf_monthly_min'=>98900,'tf_monthly_max'=>98900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護3~5\nデイサービス併設\n看取り対応可\n入居金0\n夫婦部屋あり",'tf_comment'=>'看取り対応・夫婦部屋完備。リーズナブルな料金が特長','tf_cond_ninchisho'=>'1','tf_cond_mitatori'=>'1','tf_cond_fufu'=>'1','tf_featured'=>'1','tf_order'=>2] ],
[ 'title'=>'秋桜の家森山', 'content'=>'大甕駅から車2分という好立地。24時間職員が常駐し、地域との交流も大切にする住宅型有料老人ホームです。地域包括支援センターとの連携も充実しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市森山町1-25-16','tf_access'=>'大甕駅から車2分','tf_room_size'=>'14.18~15.08㎡','tf_monthly_min'=>99600,'tf_monthly_max'=>99600,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\n地域交流\n24時間職員常駐\n入居金0",'tf_comment'=>'地域との交流を大切に。大甕駅から車2分の好立地','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>3] ],
[ 'title'=>'ご長寿くらぶ日立大沼', 'content'=>'大甕駅から車8分。居室家具付きで引越しの手間が少なく、機械浴・特殊浴も完備した住宅型有料老人ホームです。デイサービスも併設しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市東大沼町3-31-1','tf_access'=>'大甕駅から車8分','tf_room_size'=>'13.51~16.26㎡','tf_monthly_min'=>135033,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n居室家具付き\n入居金0\n機械浴・特殊浴あり",'tf_comment'=>'居室家具付きで引越しがラク。機械浴・特殊浴完備','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>4] ],
[ 'title'=>'ふらわあ館宮田', 'content'=>'日立駅から車9分。ハナワケアグループが運営するサービス付き高齢者向け住宅で、デイサービス併設・夫婦部屋あり。キャンペーン中で月額117,000円(要介護2以上対象)から入居できます。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市宮田町4-10-8','tf_access'=>'日立駅から車9分','tf_room_size'=>'26.08㎡','tf_monthly_min'=>117000,'tf_monthly_max'=>117000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n夫婦部屋あり\n入居金0\nショートステイ相談可",'tf_comment'=>'国家資格者によるマッサージが無料(キャンペーン中)','tf_cond_fufu'=>'1','tf_featured'=>'1','tf_order'=>5] ],
[ 'title'=>'ひたちの森シニア館', 'content'=>'日立市小木津町にある住宅型有料老人ホーム。温泉付きで訪問介護・訪問看護・リハビリサービスなど個人に合わせたケアプランが組めます。南向き個室で快適な生活環境が整っています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市小木津町1020','tf_access'=>'小木津駅近く','tf_room_size'=>'バス・トイレ・洗面・キッチン完備','tf_monthly_min'=>85000,'tf_monthly_max'=>128000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\nショートステイ併設\n温泉付き",'tf_comment'=>'温泉付き!個別ケアプランで自由な生活スタイルを実現','tf_featured'=>'1','tf_order'=>6] ],
[ 'title'=>'クローバーの丘', 'content'=>'「施設」ではなく「家」として、ご家族がいつでも自由に出入りできる環境を大切にしています。ヒノキ風呂と手作りの食事で、第二の家となるよう日々努めています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市滑川本町2-5-50','tf_monthly_min'=>133800,'tf_monthly_max'=>133800,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\n手作りの食事\nヒノキ風呂\n入居金0",'tf_comment'=>'「施設」ではなく「家」。ヒノキ風呂で第二の家を目指します','tf_featured'=>'0','tf_order'=>7] ],
[ 'title'=>'ご長寿くらぶ日立滑川', 'content'=>'日立市東滑川町にあるサービス付き高齢者向け住宅。居室にはトイレ・洗面台・収納を完備し、家具持ち込みも可能。24時間365日、経験豊かな介護スタッフがサポートします。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市東滑川町4-15-1','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n居室家具付き\n入居金0",'tf_comment'=>'24時間365日スタッフサポート。居室家具付きで安心入居','tf_featured'=>'0','tf_order'=>8] ],
[ 'title'=>'豊浦の郷', 'content'=>'眼下に海と緑を望む静かな丘の上に佇むケアハウス。食堂の大きな窓からは季節の移ろいが感じられます。豊かな自然と穏やかな時間の中で「自分らしい暮らし」をゆったりと取り戻せる場所です。',
'meta'=>['tf_type'=>'ケアハウス','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市川尻町773-1','tf_monthly_min'=>67110,'tf_monthly_max'=>189410,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"自立の方向け\n夫婦部屋あり\n行事が豊富",'tf_comment'=>'海と緑を望む丘上のケアハウス。収入に応じた料金設定','tf_cond_fufu'=>'1','tf_featured'=>'1','tf_order'=>9] ],
[ 'title'=>'ひまわりハウス諏訪', 'content'=>'日立市諏訪町にある住宅型有料老人ホーム。介護度の高い方や認知症の見守りが必要な方を中心に受け入れています。新鮮な野菜を使った手作りのお食事と、丁寧な安否確認が特長です。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市諏訪町1-20-6','tf_monthly_min'=>113000,'tf_monthly_max'=>113000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\nショートステイ可\n手作りの食事",'tf_comment'=>'認知症・見守りが必要な方に対応。新鮮野菜の手作り食事','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>10] ],
[ 'title'=>'愛の家グループホーム日立', 'content'=>'住宅街の中にある静かで穏やかな環境のグループホームです。「やることがある」「居場所がある」「頼りにされる」生活を目標に、入居者様・スタッフが共に支え合える環境づくりに努めています。',
'meta'=>['tf_type'=>'グループホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市森山町1-11-3','tf_monthly_min'=>129800,'tf_monthly_max'=>129800,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援2〜要介護5\n手作りの食事\n入居金0",'tf_comment'=>'「居場所・やること・頼りにされる」生活を大切に','tf_cond_ninchisho'=>'1','tf_featured'=>'1','tf_order'=>11] ],
[ 'title'=>'ケアレジデンス日立', 'content'=>'段差等に配慮されたバリアフリー設計のサービス付き高齢者向け住宅。毎日3食を居室までお届けし、お届けの際に安否確認も行います。夜間有人体制で安心の住環境です。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市大みか町2-22-24','tf_monthly_min'=>99000,'tf_monthly_max'=>99000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\n夜間有人\n居室家具付き\n入居金0",'tf_comment'=>'毎日3食居室届け&安否確認。バリアフリー設計','tf_featured'=>'0','tf_order'=>12] ],
[ 'title'=>'ほっと・ハウス大沼', 'content'=>'要介護度の高い方や、自立した生活が難しい方でも快適に過ごせる環境が整ったサービス付き高齢者向け住宅。各居室には個室便所・浴室・台所などの設備を完備。夫婦部屋もあります。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市東大沼町4-2-20','tf_monthly_min'=>147300,'tf_monthly_max'=>147300,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\n手作りの食事\n夫婦部屋あり\nデイサービス併設",'tf_comment'=>'各居室に便所・浴室・台所完備。高度な介護も対応','tf_cond_fufu'=>'1','tf_cond_iryo'=>'1','tf_featured'=>'0','tf_order'=>13] ],
[ 'title'=>'ライフアシスト・泉が森', 'content'=>'日立市水木町にある介護付き有料老人ホーム。日中は看護師が常駐し、月1回の往診もあります。多彩なアクティビティで充実した生活を提供。夫婦部屋もあり。現在キャンペーン中です。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市水木町2-20-5','tf_monthly_min'=>258060,'tf_monthly_max'=>258060,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nキャンペーン中\n夫婦部屋あり\n入居金0",'tf_comment'=>'日中看護師常駐・月1回往診。アクティビティ充実(キャンペーン中)','tf_cond_iryo'=>'1','tf_cond_fufu'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'1','tf_order'=>14] ],
[ 'title'=>'まごころの家日立金沢', 'content'=>'日立市金沢町にある住宅型有料老人ホーム。デイサービス・定期的な訪問診療を提供。全室個室で緊急時には呼び出しコールが常時対応。入居金0円で安心してスタートできます。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市金沢町4-20-10','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護3~5\nデイサービス併設\n手作りの食事\n入居金0",'tf_comment'=>'デイサービス・訪問診療完備。全室個室・ナースコール常時対応','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>15] ],
[ 'title'=>'リライフ根道ヶ丘', 'content'=>'日立市大沼町にあるサービス付き高齢者向け住宅。24時間体制で常駐するスタッフが緊急通報装置に迅速対応。デイサービス併設・夫婦部屋あり。まごころと専門性を兼ね備えた施設です。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市大沼町4-9-11','tf_monthly_min'=>129400,'tf_monthly_max'=>129400,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援1~2・要介護1~5\nデイサービス併設\n夫婦部屋あり",'tf_comment'=>'24時間常駐スタッフが迅速対応。夫婦部屋あり','tf_cond_fufu'=>'1','tf_featured'=>'0','tf_order'=>16] ],
[ 'title'=>'かみーら', 'content'=>'全域オールバリアフリー設計で、車いすのご利用者様も安心して移動できる住宅型有料老人ホーム。デイサービス併設・手作りの食事。自然とのふれあいと生きがいのある生活をサポートします。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市金沢町3-19-14','tf_monthly_min'=>88000,'tf_monthly_max'=>88000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n手作りの食事\n入居金0",'tf_comment'=>'全域バリアフリー設計。自然とふれあい生きがいある生活を','tf_featured'=>'0','tf_order'=>17] ],
/* =========================================
東海村 (5件)
========================================= */
[ 'title'=>'常陸東海園', 'content'=>'東海駅から車7分。特別養護老人ホームとして要介護3以上の方を受け入れています。従来型個室・多床室があり、機械浴・特殊浴を完備。看取りにも対応しています。',
'meta'=>['tf_type'=>'特別養護老人ホーム','tf_area'=>'tokai','tf_city'=>'東海村','tf_prefecture'=>'茨城県','tf_address'=>'茨城県那珂郡東海村村松2804-4','tf_access'=>'東海駅から車7分','tf_room_size'=>'11㎡~','tf_monthly_min'=>71000,'tf_monthly_max'=>71000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護3~5\n従来型個室・多床室\n機械浴・特殊浴\n入居金0\n看取り対応可",'tf_comment'=>'特養ならではの低コストで充実したケア。看取りにも対応','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'1','tf_order'=>18] ],
[ 'title'=>'レゴリス東海', 'content'=>'東海駅から車2分という好立地にあるサービス付き高齢者向け住宅。24時間職員が常駐し、デイサービスも併設。安心の住環境と充実したサービスが揃っています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'tokai','tf_city'=>'東海村','tf_prefecture'=>'茨城県','tf_address'=>'茨城県那珂郡東海村舟石川駅西4-24-31','tf_access'=>'東海駅から車2分','tf_room_size'=>'18.60㎡','tf_monthly_min'=>117700,'tf_monthly_max'=>117700,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\n24時間職員常駐\nデイサービス併設\n入居金0",'tf_comment'=>'東海駅から車2分。24時間スタッフ常駐で安心の住環境','tf_featured'=>'1','tf_order'=>19] ],
[ 'title'=>'さわやか荘', 'content'=>'東海駅から車5分。広々28㎡の個室を持つ住宅型有料老人ホームです。夫婦部屋もあり、手作りの食事でアットホームな雰囲気。地域の方々やボランティアとの連携も大切にしています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'tokai','tf_city'=>'東海村','tf_prefecture'=>'茨城県','tf_address'=>'茨城県那珂郡東海村船場741-19','tf_access'=>'東海駅から車5分','tf_room_size'=>'28㎡','tf_monthly_min'=>114000,'tf_monthly_max'=>134000,'tf_admission_min'=>200000,'tf_admission_max'=>200000,'tf_features'=>"要支援1~2・要介護1~2\n夫婦部屋あり\n手作りの食事",'tf_comment'=>'広々28㎡の個室。夫婦部屋・手作り食事でアットホームな環境','tf_cond_fufu'=>'1','tf_featured'=>'0','tf_order'=>20] ],
[ 'title'=>'まごころの家村松', 'content'=>'東海駅から車7分。看取り対応可・デイサービス併設の住宅型有料老人ホームです。月額87,900円のリーズナブルな料金で、丁寧な介護と手作りの食事を提供しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'tokai','tf_city'=>'東海村','tf_prefecture'=>'茨城県','tf_address'=>'茨城県那珂郡東海村村松299-1','tf_access'=>'東海駅から車7分','tf_room_size'=>'8.68㎡','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\n看取り対応可\nデイサービス併設\n手作りの食事\n入居金0",'tf_comment'=>'看取り対応・デイサービス完備。低コストで手厚いサポート','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>21] ],
[ 'title'=>'ケアハウス東海', 'content'=>'東海駅から車7分。大浴場・和室あり、夫婦部屋も完備したケアハウスです。24時間体制で買い物送迎・生活相談にも対応。地域の方々やボランティアとの連携も積極的に行っています。',
'meta'=>['tf_type'=>'ケアハウス','tf_area'=>'tokai','tf_city'=>'東海村','tf_prefecture'=>'茨城県','tf_address'=>'茨城県那珂郡東海村船場742-16','tf_access'=>'東海駅から車7分','tf_room_size'=>'23.3㎡','tf_monthly_min'=>77336,'tf_monthly_max'=>77336,'tf_admission_min'=>300000,'tf_admission_max'=>300000,'tf_features'=>"要支援1~2・要介護1~2\n夫婦部屋あり\n大浴場\n和室あり",'tf_comment'=>'大浴場・和室あり。24時間体制でのきめ細かいサポート','tf_cond_fufu'=>'1','tf_featured'=>'1','tf_order'=>22] ],
/* =========================================
ひたちなか市 (7件)
========================================= */
[ 'title'=>'ご長寿くらぶひたちなか市外野', 'content'=>'ひたちなか市東石川にあるサービス付き高齢者向け住宅。24時間介護士常駐・機械浴特殊浴完備でキャンペーン対象物件。訪問介護・デイサービス併設で24時間対応可能な医療サービスもあります。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市東石川3202-4','tf_room_size'=>'19.68~19.87㎡','tf_monthly_min'=>133533,'tf_monthly_max'=>133533,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n24時間介護士常駐\n機械浴・特殊浴",'tf_comment'=>'キャンペーン対象物件。24時間医療サービス対応','tf_cond_iryo'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'1','tf_order'=>23] ],
[ 'title'=>'まごころの家ひたちなか佐和', 'content'=>'佐和駅から徒歩圏内という利便性抜群のサービス付き高齢者向け住宅。館内厨房で作る手作り料理と良心的な料金設定が好評。夫婦部屋もあり。月額99,000円〜入居可能です。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市小貫山1-8-9','tf_room_size'=>'18.11~26.49㎡','tf_monthly_min'=>99000,'tf_monthly_max'=>106000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n手作り料理\n夫婦部屋あり",'tf_comment'=>'佐和駅徒歩圏内。館内厨房の手作り料理と良心的料金','tf_cond_fufu'=>'1','tf_featured'=>'1','tf_order'=>24] ],
[ 'title'=>'レゴリスひたちなか', 'content'=>'建物が新しくきれいで、車椅子の方でもゆったりと利用できるサービス付き高齢者向け住宅。談話室で面会でき、自由にTVが視聴できます。24時間職員が常駐しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県那珂郡東海村舟石川駅西4-24-31','tf_room_size'=>'19.59~19.87㎡','tf_monthly_min'=>117000,'tf_monthly_max'=>117000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5\nデイサービス併設\n入居金0\n24時間職員常駐",'tf_comment'=>'新築きれい・車椅子対応。談話室で自由に面会できます','tf_featured'=>'0','tf_order'=>25] ],
[ 'title'=>'ハートワンひたちなか', 'content'=>'介護付き有料老人ホームとして重度の方も安心して暮らせる環境を整えています。医療機関との連携が強く、日中看護師常駐・機械浴特殊浴完備。看取りにも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市津田2031-150','tf_room_size'=>'13.5㎡','tf_monthly_min'=>119260,'tf_monthly_max'=>119260,'tf_admission_min'=>135000,'tf_admission_max'=>135000,'tf_features'=>"要介護1~5\n看取り対応可\n機械浴・特殊浴\n日中看護師常駐",'tf_comment'=>'重度の方も安心の介護付き。医療機関との強い連携','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'1','tf_order'=>26] ],
[ 'title'=>'39ガーデンプレイスありが塔', 'content'=>'外出レクが定期的に行われ、地域とのつながりも豊かなサービス付き高齢者向け住宅。医療的な対応が手厚く、看取りにも対応しています。地域包括支援センターとの連携も充実。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市大成町49-14','tf_room_size'=>'21.61㎡','tf_monthly_min'=>119260,'tf_monthly_max'=>119260,'tf_admission_min'=>135000,'tf_admission_max'=>135000,'tf_features'=>"要支援1~2・要介護1~5\nデイサービス併設\n看取り対応可",'tf_comment'=>'外出レク・地域交流が豊か。医療的対応も充実','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>27] ],
[ 'title'=>'こここいちひたちなか', 'content'=>'居宅・訪問介護・グループホームを併設した閑静な住宅街にあるサービス付き高齢者向け住宅。季節のレクリエーションが豊富で、手作りの食事も好評です。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市東石川3139-2','tf_room_size'=>'19.84~20.02㎡','tf_monthly_min'=>137000,'tf_monthly_max'=>137000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援1~2・要介護1~3\nデイサービス併設\n手作りの食事",'tf_comment'=>'居宅・訪問介護・グループホームを併設。季節レク豊富','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>28] ],
[ 'title'=>'古民家シェアハウスhinata〜陽〜', 'content'=>'ひたちなか市高野にある温もりあふれる古民家シェアハウス。アットホームな雰囲気とスタッフの温かい対応が魅力。月額50,000円という良心的な料金設定で、夫婦入居も可能です。',
'meta'=>['tf_type'=>'シェアハウス(住宅型)','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市高野2428-60','tf_monthly_min'=>50000,'tf_monthly_max'=>50000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援1~2・要介護1~5\n夫婦入居可",'tf_comment'=>'古民家の温もり。良心的50,000円〜・夫婦入居OK','tf_cond_fufu'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'1','tf_order'=>29] ],
/* =========================================
ひたちなか市(あいらいふ連携・追加分)
=========================================*/
[ 'title'=>'ご長寿くらぶひたちなか佐和', 'content'=>'ひたちなか市にあるサービス付き高齢者向け住宅です。アーバンアーキテック運営。佐和駅近く、居室家具付きで安心入居。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市高場字道脇988-8','tf_monthly_min'=>129100,'tf_monthly_max'=>129100,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'アーバンアーキテック運営。佐和駅近く、居室家具付きで安心入居','tf_featured'=>'0','tf_order'=>30] ],
[ 'title'=>'ご長寿くらぶ高場', 'content'=>'ひたちなか市にあるサービス付き高齢者向け住宅です。24時間介護士常駐のサービス付き高齢者住宅。生活保護対応可。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市高場2355-1','tf_monthly_min'=>139645,'tf_monthly_max'=>139645,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
24時間介護士常駐",'tf_comment'=>'24時間介護士常駐のサービス付き高齢者住宅。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>31] ],
[ 'title'=>'ご長寿くらぶ東石川', 'content'=>'ひたちなか市にあるサービス付き高齢者向け住宅です。訪問介護・デイサービス併設。生活保護対応可。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市西光地2-18-1','tf_monthly_min'=>133533,'tf_monthly_max'=>133533,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
訪問介護併設",'tf_comment'=>'訪問介護・デイサービス併設。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>32] ],
[ 'title'=>'ご長寿くらぶ笹野Ⅰ', 'content'=>'ひたちなか市にあるサービス付き高齢者向け住宅です。笹野町の閑静な住宅街にある。デイサービス・訪問介護を完備。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市笹野町3-1-6','tf_monthly_min'=>139645,'tf_monthly_max'=>139645,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
居室家具付き",'tf_comment'=>'笹野町の閑静な住宅街にある。デイサービス・訪問介護を完備','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>33] ],
[ 'title'=>'ご長寿くらぶ笹野Ⅱ', 'content'=>'ひたちなか市にあるサービス付き高齢者向け住宅です。笹野Ⅰ棟に隣接。同エリアで連携するサービス付き高齢者住宅。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市笹野町3-1-5','tf_monthly_min'=>139645,'tf_monthly_max'=>139645,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0",'tf_comment'=>'笹野Ⅰ棟に隣接。同エリアで連携するサービス付き高齢者住宅','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>34] ],
[ 'title'=>'ラ・ナシカひたちなか', 'content'=>'ひたちなか市にある介護付き有料老人ホームです。日中看護師常駐・機械浴完備の介護付き有料老人ホーム。重度の方も安心。医療ケア充実、看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市馬渡2831-46','tf_monthly_min'=>213950,'tf_monthly_max'=>213950,'tf_admission_min'=>100000,'tf_admission_max'=>100000,'tf_features'=>"要介護1~5
看取り対応可
日中看護師常駐
機械浴・特殊浴",'tf_comment'=>'日中看護師常駐・機械浴完備の介護付き有料老人ホーム。重度の方も安心','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>35] ],
[ 'title'=>'ニチイケアセンターかつた', 'content'=>'ひたちなか市にある介護付き有料老人ホームです。ニチイ学館運営の介護付き老人ホーム。24時間看護師対応・入居金0円。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市市毛1111-1','tf_monthly_min'=>168878,'tf_monthly_max'=>168878,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
入居金0
看取り対応可
24時間看護師対応",'tf_comment'=>'ニチイ学館運営の介護付き老人ホーム。24時間看護師対応・入居金0円','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>36] ],
[ 'title'=>'愛の家グループホームひたちなか', 'content'=>'ひたちなか市にあるグループホームです。メディカル・ケア・サービス運営のグループホーム。認知症の方が穏やかに暮らせる環境。認知症対応にも対応しています。',
'meta'=>['tf_type'=>'グループホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市北神敷台3793-1','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援2〜要介護5
少人数ユニットケア
手作りの食事
入居金0",'tf_comment'=>'メディカル・ケア・サービス運営のグループホーム。認知症の方が穏やかに暮らせる環境','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>37] ],
[ 'title'=>'勝田ケアセンターそよ風', 'content'=>'ひたちなか市にあるグループホームです。SOYOKAZE運営。少人数で温かいアットホームなグループホーム。認知症対応にも対応しています。',
'meta'=>['tf_type'=>'グループホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市中根2444-1','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援2〜要介護5
少人数ケア
手作りの食事
アクティビティ充実",'tf_comment'=>'SOYOKAZE運営。少人数で温かいアットホームなグループホーム','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>38] ],
[ 'title'=>'愛の家グループホームひたちなか中根', 'content'=>'ひたちなか市にあるグループホームです。メディカル・ケア・サービス運営。中根の静かな環境で認知症の方をサポート。認知症対応にも対応しています。',
'meta'=>['tf_type'=>'グループホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市中根4755-2','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援2〜要介護5
少人数ユニットケア
手作りの食事",'tf_comment'=>'メディカル・ケア・サービス運営。中根の静かな環境で認知症の方をサポート','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>39] ],
[ 'title'=>'はるのさと', 'content'=>'ひたちなか市にあるサービス付き高齢者向け住宅です。社会福祉法人春寿会運営。看取りにも対応するアットホームなサービス付き住宅。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市堀口79-2','tf_monthly_min'=>128000,'tf_monthly_max'=>128000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
看取り対応可
手作りの食事",'tf_comment'=>'社会福祉法人春寿会運営。看取りにも対応するアットホームなサービス付き住宅','tf_cond_mitatori'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>40] ],
[ 'title'=>'まごころの家ひたちなか馬渡', 'content'=>'ひたちなか市にあるサービス付き高齢者向け住宅です。コンテック運営。月額98,900円〜のリーズナブルなサービス付き住宅。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市馬渡2910-7','tf_monthly_min'=>98900,'tf_monthly_max'=>98900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
看取り対応可
入居金0",'tf_comment'=>'コンテック運営。月額98,900円〜のリーズナブルなサービス付き住宅','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>41] ],
[ 'title'=>'まごころの家ひたちなか高野', 'content'=>'ひたちなか市にある住宅型有料老人ホームです。コンテック運営。高野エリアの落ち着いた住環境。月額87,900円〜。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市高野248-1','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。高野エリアの落ち着いた住環境。月額87,900円〜','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>42] ],
[ 'title'=>'まごころの家ひたちなか東石川', 'content'=>'ひたちなか市にある住宅型有料老人ホームです。コンテック運営。東石川エリアで丁寧な介護を提供。月額87,900円〜。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市東石川3556','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。東石川エリアで丁寧な介護を提供。月額87,900円〜','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>43] ],
[ 'title'=>'まごころの家ひたちなか松戸', 'content'=>'ひたちなか市にある住宅型有料老人ホームです。コンテック運営。松戸エリアの住宅型有料老人ホーム。月額87,900円〜。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市松戸2-10-13','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。松戸エリアの住宅型有料老人ホーム。月額87,900円〜','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>44] ],
[ 'title'=>'特別養護老人ホーム春寿園', 'content'=>'ひたちなか市にある特別養護老人ホームです。社会福祉法人春寿会運営の特別養護老人ホーム。はるのさとと同法人。医療ケア充実、看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'特別養護老人ホーム','tf_area'=>'hitachinaka','tf_city'=>'ひたちなか市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県ひたちなか市堀口88-1','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護3~5
機械浴・特殊浴
看取り対応可
入居金0",'tf_comment'=>'社会福祉法人春寿会運営の特別養護老人ホーム。はるのさとと同法人','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>45] ],
/* =========================================
日立市(あいらいふ連携・追加分)
=========================================*/
[ 'title'=>'ご長寿くらぶ日立おおみか', 'content'=>'日立市にあるサービス付き高齢者向け住宅です。アーバンアーキテック運営。大みか町の閑静な環境。デイサービス・訪問介護併設。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市大みか町3-16-22','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'アーバンアーキテック運営。大みか町の閑静な環境。デイサービス・訪問介護併設','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>46] ],
[ 'title'=>'ご長寿くらぶ日立諏訪Ⅰ', 'content'=>'日立市にある住宅型有料老人ホームです。アーバンアーキテック運営。諏訪エリアで安心の生活をサポート。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市諏訪町4-14-3','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'アーバンアーキテック運営。諏訪エリアで安心の生活をサポート','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>47] ],
[ 'title'=>'ご長寿くらぶ日立諏訪Ⅱ', 'content'=>'日立市にあるサービス付き高齢者向け住宅です。諏訪Ⅰ棟に隣接するサービス付き高齢者住宅。同エリアで連携体制。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市諏訪町4-29-15','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0",'tf_comment'=>'諏訪Ⅰ棟に隣接するサービス付き高齢者住宅。同エリアで連携体制','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>48] ],
[ 'title'=>'ご長寿くらぶ日立大久保', 'content'=>'日立市にあるサービス付き高齢者向け住宅です。アーバンアーキテック運営。大久保エリアにある24時間対応のサービス付き住宅。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市大久保町4-7-15','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'アーバンアーキテック運営。大久保エリアにある24時間対応のサービス付き住宅','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>49] ],
[ 'title'=>'ご長寿くらぶ日立・本宮', 'content'=>'日立市にある住宅型有料老人ホームです。本宮エリアの住宅型有料老人ホーム。デイサービス・訪問介護が充実。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市本宮町5-8-21','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'本宮エリアの住宅型有料老人ホーム。デイサービス・訪問介護が充実','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>50] ],
[ 'title'=>'ご長寿くらぶ日立大沼II', 'content'=>'日立市にある住宅型有料老人ホームです。大沼I棟に隣接。居室家具付きで引越しの負担を軽減。24時間対応。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市東大沼町3-31-15','tf_monthly_min'=>135033,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'大沼I棟に隣接。居室家具付きで引越しの負担を軽減。24時間対応','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>51] ],
[ 'title'=>'らいふアシスト・泉ヶ森 本館', 'content'=>'日立市にある介護付き有料老人ホームです。泉ヶ森本館。日中看護師常駐・機械浴完備。重度介護も安心してお任せください。医療ケア充実、看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市水木町2-20-1','tf_monthly_min'=>258060,'tf_monthly_max'=>258060,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
日中看護師常駐
看取り対応可
機械浴・特殊浴",'tf_comment'=>'泉ヶ森本館。日中看護師常駐・機械浴完備。重度介護も安心してお任せください','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>52] ],
[ 'title'=>'らいふアシスト・泉ヶ森 ナーシングケアレジデンス', 'content'=>'日立市にある介護付き有料老人ホームです。泉ヶ森ナーシングケアレジデンス。24時間看護師対応で高度な医療ケアを提供。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市水木町2-20-1','tf_monthly_min'=>258060,'tf_monthly_max'=>258060,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
24時間看護師対応
看取り対応可
医療ケア充実",'tf_comment'=>'泉ヶ森ナーシングケアレジデンス。24時間看護師対応で高度な医療ケアを提供','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>53] ],
[ 'title'=>'まごころの家すえひろ', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。末広町の住宅型老人ホーム。月額87,900円〜のリーズナブル料金。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市末広町5-6-8','tf_monthly_min'=>87900,'tf_monthly_max'=>98900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。末広町の住宅型老人ホーム。月額87,900円〜のリーズナブル料金','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>54] ],
[ 'title'=>'まごころの家塙山', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。塙山エリアの落ち着いた環境。月額87,900円〜。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市金沢町2-5-43','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。塙山エリアの落ち着いた環境。月額87,900円〜','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>55] ],
[ 'title'=>'まごころの家小木津', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。小木津駅近く。デイサービス・訪問介護完備。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市小木津町3-20-7','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。小木津駅近く。デイサービス・訪問介護完備','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>56] ],
[ 'title'=>'まごころの家森山', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。森山エリアの住宅型老人ホーム。丁寧な介護と手作り料理。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市森山町2-26-7','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。森山エリアの住宅型老人ホーム。丁寧な介護と手作り料理','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>57] ],
[ 'title'=>'まごころの家日立北', 'content'=>'日立市にあるサービス付き高齢者向け住宅です。コンテック運営。川尻エリアのサービス付き高齢者住宅。月額98,900円〜。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市川尻町7-31-7','tf_monthly_min'=>98900,'tf_monthly_max'=>98900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
看取り対応可",'tf_comment'=>'コンテック運営。川尻エリアのサービス付き高齢者住宅。月額98,900円〜','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>58] ],
[ 'title'=>'まごころの家大沼', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。大沼エリアの住宅型老人ホーム。月額87,900円〜。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市大沼町3-16-35','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。大沼エリアの住宅型老人ホーム。月額87,900円〜','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>59] ],
[ 'title'=>'まごころの家南高野', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。南高野町の静かな環境。月額87,900円〜。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市南高野町2-17-5','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。南高野町の静かな環境。月額87,900円〜','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>60] ],
[ 'title'=>'まごころの家日高', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。日高エリアの住宅型老人ホーム。全室個室で快適な生活を。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市日高町4-6-9','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。日高エリアの住宅型老人ホーム。全室個室で快適な生活を','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>61] ],
[ 'title'=>'まごころの家鮎川', 'content'=>'日立市にある住宅型有料老人ホームです。コンテック運営。鮎川町の住宅型老人ホーム。月額87,900円〜。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市鮎川町6-11-30','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。鮎川町の住宅型老人ホーム。月額87,900円〜','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>62] ],
[ 'title'=>'ヴィラまごころ大みか', 'content'=>'日立市にある介護付き有料老人ホームです。コンテック運営の介護付き有料老人ホーム。日中看護師常駐で安心のケア。医療ケア充実、看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'hitachi','tf_city'=>'日立市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県日立市森山町3-17-41','tf_monthly_min'=>98900,'tf_monthly_max'=>98900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
日中看護師常駐
機械浴・特殊浴",'tf_comment'=>'コンテック運営の介護付き有料老人ホーム。日中看護師常駐で安心のケア','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>63] ],
/* =========================================
水戸市(あいらいふ連携・新規掲載)
=========================================*/
[ 'title'=>'ご長寿くらぶ水戸けやき台', 'content'=>'水戸市にある住宅型有料老人ホームです。アーバンアーキテック運営。けやき台の住宅型老人ホーム。生活保護対応可。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市けやき台2-51-4','tf_monthly_min'=>131977,'tf_monthly_max'=>131977,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'アーバンアーキテック運営。けやき台の住宅型老人ホーム。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>64] ],
[ 'title'=>'ご長寿くらぶ水戸千波', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。千波湖近くの閑静な立地。デイサービス・訪問介護完備。生活保護対応可。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市千波町291-5','tf_monthly_min'=>135033,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
24時間介護士常駐",'tf_comment'=>'千波湖近くの閑静な立地。デイサービス・訪問介護完備。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>65] ],
[ 'title'=>'ご長寿くらぶ水戸見川', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。見川エリアの閑静な住宅街。デイサービス併設・24時間スタッフ常駐。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市見川町2131-2165','tf_monthly_min'=>138033,'tf_monthly_max'=>138033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
居室家具付き",'tf_comment'=>'見川エリアの閑静な住宅街。デイサービス併設・24時間スタッフ常駐','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>66] ],
[ 'title'=>'ご長寿くらぶ水戸酒門', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。キャンペーン中で月額126,000円〜。デイサービス・訪問介護完備。生活保護対応可。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市酒門町567-4','tf_monthly_min'=>126000,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
キャンペーン中",'tf_comment'=>'キャンペーン中で月額126,000円〜。デイサービス・訪問介護完備。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>67] ],
[ 'title'=>'ご長寿くらぶ水戸河和田', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。河和田エリアのサービス付き高齢者住宅。デイサービス・訪問介護充実。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市河和田2-21-18','tf_monthly_min'=>135033,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
居室家具付き",'tf_comment'=>'河和田エリアのサービス付き高齢者住宅。デイサービス・訪問介護充実','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>68] ],
[ 'title'=>'ご長寿くらぶ水戸・金町', 'content'=>'水戸市にある住宅型有料老人ホームです。水戸市中心部・金町の便利な立地。デイサービス・訪問介護完備。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市金町2-3-30','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
居室家具付き
入居金0",'tf_comment'=>'水戸市中心部・金町の便利な立地。デイサービス・訪問介護完備','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>69] ],
[ 'title'=>'ご長寿くらぶ水戸石川', 'content'=>'水戸市にある住宅型有料老人ホームです。石川エリアの住宅型老人ホーム。デイサービス・訪問介護充実。生活保護対応可。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市石川1-3964-2','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
入居金0
居室家具付き",'tf_comment'=>'石川エリアの住宅型老人ホーム。デイサービス・訪問介護充実。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>70] ],
[ 'title'=>'ツクイ・サンフォレスト水戸', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。株式会社ツクイ運営。水戸市中央の好立地。日中看護師常駐で安心の暮らし。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市中央2-6-32','tf_monthly_min'=>146000,'tf_monthly_max'=>146000,'tf_admission_min'=>180000,'tf_admission_max'=>180000,'tf_features'=>"要介護1~5
看取り対応可
日中看護師常駐
入居金あり",'tf_comment'=>'株式会社ツクイ運営。水戸市中央の好立地。日中看護師常駐で安心の暮らし','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>71] ],
[ 'title'=>'サポートハウスいろどり', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。医療法人社団協栄会運営。医療対応力が高い石川エリアのサービス付き住宅。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市石川1-4017-1','tf_monthly_min'=>143000,'tf_monthly_max'=>143000,'tf_admission_min'=>106000,'tf_admission_max'=>106000,'tf_features'=>"要介護1~5
看取り対応可
医療法人運営
機械浴あり",'tf_comment'=>'医療法人社団協栄会運営。医療対応力が高い石川エリアのサービス付き住宅','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>72] ],
[ 'title'=>'いっしん館内原', 'content'=>'水戸市にあるグループホームです。株式会社いっしん運営。内原エリアの認知症対応グループホーム。生活保護対応可。認知症対応にも対応しています。',
'meta'=>['tf_type'=>'グループホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市杉崎町195-1','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援2〜要介護5
少人数ケア
手作りの食事
入居金0",'tf_comment'=>'株式会社いっしん運営。内原エリアの認知症対応グループホーム。生活保護対応可','tf_cond_ninchisho'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>73] ],
[ 'title'=>'しまホーム平須', 'content'=>'水戸市にある住宅型有料老人ホームです。株式会社しまナーシングホーム運営。平須町の住宅型老人ホーム。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市平須町1431-3','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
入居金要確認",'tf_comment'=>'株式会社しまナーシングホーム運営。平須町の住宅型老人ホーム','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>74] ],
[ 'title'=>'しまホーム河和田', 'content'=>'水戸市にある住宅型有料老人ホームです。しまナーシングホーム運営。河和田の住宅型老人ホーム。生活保護対応可。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市河和田3-2352-32','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
生活保護対応",'tf_comment'=>'しまナーシングホーム運営。河和田の住宅型老人ホーム。生活保護対応可','tf_cond_mitatori'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>75] ],
[ 'title'=>'しまナーシングホーム平須', 'content'=>'水戸市にある介護付き有料老人ホームです。しまナーシングホーム運営の介護付き老人ホーム。日中看護師常駐。生活保護対応可。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市平須町1416','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
日中看護師常駐
機械浴・特殊浴",'tf_comment'=>'しまナーシングホーム運営の介護付き老人ホーム。日中看護師常駐。生活保護対応可','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>76] ],
[ 'title'=>'あんしんホーム水戸内原', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。株式会社ヴァティー運営。内原エリアのサービス付き高齢者住宅。生活保護対応可。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市内原町910-1','tf_monthly_min'=>143750,'tf_monthly_max'=>143750,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
生活保護対応",'tf_comment'=>'株式会社ヴァティー運営。内原エリアのサービス付き高齢者住宅。生活保護対応可','tf_cond_mitatori'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>77] ],
[ 'title'=>'はしかべ水戸河和田町', 'content'=>'水戸市にある住宅型有料老人ホームです。株式会社TTT運営。月額138,000円〜。河和田町の住宅型老人ホーム。生活保護対応可。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市河和田町1110-1','tf_monthly_min'=>138000,'tf_monthly_max'=>138000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
入居金0",'tf_comment'=>'株式会社TTT運営。月額138,000円〜。河和田町の住宅型老人ホーム。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>78] ],
[ 'title'=>'はしかべ水戸松本町', 'content'=>'水戸市にある住宅型有料老人ホームです。株式会社TTT運営。松本町の住宅型老人ホーム。月額138,000円〜。生活保護対応可。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市松本町1-3','tf_monthly_min'=>138000,'tf_monthly_max'=>138000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
入居金0
生活保護対応",'tf_comment'=>'株式会社TTT運営。松本町の住宅型老人ホーム。月額138,000円〜。生活保護対応可','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>79] ],
[ 'title'=>'ふるさとホーム水戸赤塚', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。株式会社ヴァティー運営。赤塚エリアのサービス付き高齢者住宅。生活保護対応可。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市姫子2-692-1','tf_monthly_min'=>143750,'tf_monthly_max'=>143750,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
生活保護対応",'tf_comment'=>'株式会社ヴァティー運営。赤塚エリアのサービス付き高齢者住宅。生活保護対応可','tf_cond_mitatori'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>80] ],
[ 'title'=>'ここいち水戸城東', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。株式会社いっしん運営。城東エリアのサービス付き高齢者住宅。生活保護対応可。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市城東4-4-6','tf_monthly_min'=>128460,'tf_monthly_max'=>128460,'tf_admission_min'=>135000,'tf_admission_max'=>135000,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
生活保護対応",'tf_comment'=>'株式会社いっしん運営。城東エリアのサービス付き高齢者住宅。生活保護対応可','tf_cond_mitatori'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>81] ],
[ 'title'=>'いっしん館水戸', 'content'=>'水戸市にあるグループホームです。株式会社いっしん運営。大塚エリアの認知症対応グループホーム。生活保護対応可。認知症対応にも対応しています。',
'meta'=>['tf_type'=>'グループホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市大塚町1612-14','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援2〜要介護5
少人数ユニットケア
手作りの食事
入居金0",'tf_comment'=>'株式会社いっしん運営。大塚エリアの認知症対応グループホーム。生活保護対応可','tf_cond_ninchisho'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>82] ],
[ 'title'=>'はぴね水戸', 'content'=>'水戸市にある介護付き有料老人ホームです。グリーンライフ株式会社運営。水戸堀町の介護付き有料老人ホーム。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市堀町915-1','tf_monthly_min'=>242229,'tf_monthly_max'=>242229,'tf_admission_min'=>150000,'tf_admission_max'=>150000,'tf_features'=>"要介護1~5
看取り対応可
日中看護師常駐
機械浴・特殊浴",'tf_comment'=>'グリーンライフ株式会社運営。水戸堀町の介護付き有料老人ホーム','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>83] ],
[ 'title'=>'水戸ケアセンターそよ風', 'content'=>'水戸市にあるグループホームです。SOYOKAZE運営。見和エリアのアットホームなグループホーム。認知症の方を温かくサポート。認知症対応にも対応しています。',
'meta'=>['tf_type'=>'グループホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市見和1-298-9','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援2〜要介護5
少人数ケア
手作りの食事
入居金0",'tf_comment'=>'SOYOKAZE運営。見和エリアのアットホームなグループホーム。認知症の方を温かくサポート','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>84] ],
[ 'title'=>'ケアレジデンス水戸本館', 'content'=>'水戸市にある介護付き有料老人ホームです。株式会社ケアレジデンス運営。大塚エリアの介護付き有料老人ホーム。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市大塚町1661','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
機械浴・特殊浴
日中看護師常駐",'tf_comment'=>'株式会社ケアレジデンス運営。大塚エリアの介護付き有料老人ホーム','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>85] ],
[ 'title'=>'ケアレジデンス水戸新館', 'content'=>'水戸市にある介護付き有料老人ホームです。株式会社ケアレジデンス運営。大塚エリアの介護付き有料老人ホーム(新館)。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市大塚町1741','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
機械浴・特殊浴
日中看護師常駐",'tf_comment'=>'株式会社ケアレジデンス運営。大塚エリアの介護付き有料老人ホーム(新館)','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>86] ],
[ 'title'=>'ケアレジデンス水戸元吉田館', 'content'=>'水戸市にある介護付き有料老人ホームです。株式会社ケアレジデンス運営。元吉田エリアの介護付き有料老人ホーム。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市元吉田町223','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
機械浴・特殊浴
日中看護師常駐",'tf_comment'=>'株式会社ケアレジデンス運営。元吉田エリアの介護付き有料老人ホーム','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>87] ],
[ 'title'=>'やすらぎ梅寿園', 'content'=>'水戸市にある介護付き有料老人ホームです。社会福祉法人親愛会運営。充実した設備と丁寧なケアで安心の暮らしを。医療ケア充実、看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市見川町1820-17','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>1903000,'tf_admission_max'=>1903000,'tf_features'=>"要介護1~5
看取り対応可
日中看護師常駐
高級感のある設備",'tf_comment'=>'社会福祉法人親愛会運営。充実した設備と丁寧なケアで安心の暮らしを','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>88] ],
[ 'title'=>'まごころの家水戸若宮', 'content'=>'水戸市にある住宅型有料老人ホームです。コンテック運営。若宮エリアの住宅型老人ホーム。月額87,900円〜のリーズナブル料金。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市若宮2-5-31','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。若宮エリアの住宅型老人ホーム。月額87,900円〜のリーズナブル料金','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>89] ],
[ 'title'=>'まごころの家赤塚', 'content'=>'水戸市にある住宅型有料老人ホームです。コンテック運営。赤塚エリアの住宅型老人ホーム。月額87,900円〜。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市中丸町270','tf_monthly_min'=>87900,'tf_monthly_max'=>87900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。赤塚エリアの住宅型老人ホーム。月額87,900円〜','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>90] ],
[ 'title'=>'まごころの家水戸堀町', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。コンテック運営。堀町のサービス付き高齢者住宅。月額98,900円〜。生活保護対応可。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市堀町920-1','tf_monthly_min'=>98900,'tf_monthly_max'=>98900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。堀町のサービス付き高齢者住宅。月額98,900円〜。生活保護対応可','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>91] ],
[ 'title'=>'まごころの家水戸駅南', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。コンテック運営。水戸駅南エリアのサービス付き高齢者住宅。月額98,900円〜。看取りにも対応、認知症対応にも対応しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市元吉田町575-1','tf_monthly_min'=>98900,'tf_monthly_max'=>98900,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス併設
手作りの食事
入居金0",'tf_comment'=>'コンテック運営。水戸駅南エリアのサービス付き高齢者住宅。月額98,900円〜','tf_cond_mitatori'=>'1','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>92] ],
[ 'title'=>'ドルチェ水戸姫子', 'content'=>'水戸市にある住宅型有料老人ホームです。株式会社リベル運営。姫子エリアのおしゃれな住宅型老人ホーム。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市姫子1-154-12','tf_monthly_min'=>139740,'tf_monthly_max'=>139740,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
入居金0",'tf_comment'=>'株式会社リベル運営。姫子エリアのおしゃれな住宅型老人ホーム','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>93] ],
[ 'title'=>'ドルチェ水戸大塚', 'content'=>'水戸市にある住宅型有料老人ホームです。株式会社リベル運営。大塚エリアの住宅型老人ホーム。生活保護対応可。看取りにも対応にも対応しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市大塚町1845-1','tf_monthly_min'=>145000,'tf_monthly_max'=>145000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
デイサービス連携
看取り対応可
生活保護対応",'tf_comment'=>'株式会社リベル運営。大塚エリアの住宅型老人ホーム。生活保護対応可','tf_cond_mitatori'=>'1','tf_cond_seikatsuhogo'=>'1','tf_featured'=>'0','tf_order'=>94] ],
[ 'title'=>'ご長寿くらぶ水戸けやき台', 'content'=>'水戸市にある住宅型有料老人ホームです。けやき台エリアの住宅型老人ホーム。月額131,977円〜。快適な生活環境と丁寧なサポートを提供しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市けやき台2-51-4','tf_monthly_min'=>131977,'tf_monthly_max'=>131977,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
生活支援サービス
入居金0",'tf_comment'=>'けやき台エリアの住宅型老人ホーム。月額131,977円〜','tf_featured'=>'0','tf_order'=>95] ],
[ 'title'=>'ご長寿くらぶ水戸千波', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。千波町エリアのサービス付き高齢者住宅。月額135,033円〜。千波湖に近く閑静な環境です。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市千波町291-5','tf_monthly_min'=>135033,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
入居金0",'tf_comment'=>'千波町エリアのサービス付き高齢者住宅。月額135,033円〜','tf_featured'=>'0','tf_order'=>96] ],
[ 'title'=>'ご長寿くらぶ水戸見川', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。見川町エリアのサービス付き高齢者住宅。月額138,033円〜。緑豊かな環境でゆったり暮らせます。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市見川町2131-2165','tf_monthly_min'=>138033,'tf_monthly_max'=>138033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
入居金0",'tf_comment'=>'見川町エリアのサービス付き高齢者住宅。月額138,033円〜','tf_featured'=>'0','tf_order'=>97] ],
[ 'title'=>'ご長寿くらぶ水戸酒門', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。酒門町エリアのサービス付き高齢者住宅。月額135,033円〜。生活支援サービスが充実しています。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市酒門町567-4','tf_monthly_min'=>135033,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
入居金0",'tf_comment'=>'酒門町エリアのサービス付き高齢者住宅。月額135,033円〜','tf_featured'=>'0','tf_order'=>98] ],
[ 'title'=>'ご長寿くらぶ水戸河和田', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。河和田エリアのサービス付き高齢者住宅。月額135,033円〜。地域に密着した温かいサービスを提供。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市河和田2-21-18','tf_monthly_min'=>135033,'tf_monthly_max'=>135033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
入居金0",'tf_comment'=>'河和田エリアのサービス付き高齢者住宅。月額135,033円〜','tf_featured'=>'0','tf_order'=>99] ],
[ 'title'=>'ご長寿くらぶ水戸・金町', 'content'=>'水戸市にある住宅型有料老人ホームです。金町エリアの住宅型老人ホーム。月額141,033円〜。水戸市中心部に近く利便性の高い立地。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市金町2-3-30','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
生活支援サービス
入居金0",'tf_comment'=>'金町エリアの住宅型老人ホーム。月額141,033円〜','tf_featured'=>'0','tf_order'=>100] ],
[ 'title'=>'ご長寿くらぶ水戸石川', 'content'=>'水戸市にある住宅型有料老人ホームです。石川エリアの住宅型老人ホーム。月額141,033円〜。個別のケアプランで丁寧なサポートを提供。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市石川1-3964-2','tf_monthly_min'=>141033,'tf_monthly_max'=>141033,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
生活支援サービス
入居金0",'tf_comment'=>'石川エリアの住宅型老人ホーム。月額141,033円〜','tf_featured'=>'0','tf_order'=>101] ],
[ 'title'=>'ツクイ・サンフォレスト水戸', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。株式会社ツクイ運営。水戸中央エリアのサービス付き高齢者住宅。月額146,000円〜。中心部の好立地で安心のサービス。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市中央2-6-32','tf_monthly_min'=>146000,'tf_monthly_max'=>146000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
介護サービス連携",'tf_comment'=>'株式会社ツクイ運営。中央エリアのサービス付き高齢者住宅。月額146,000円〜','tf_featured'=>'0','tf_order'=>102] ],
[ 'title'=>'サポートハウスいろどり', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。石川エリアのサービス付き高齢者住宅。月額143,000円〜。多彩なレクリエーションと温かいサポートが特長。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市石川1-4017-1','tf_monthly_min'=>143000,'tf_monthly_max'=>143000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
レクリエーション充実",'tf_comment'=>'石川エリアのサービス付き高齢者住宅。月額143,000円〜','tf_featured'=>'0','tf_order'=>103] ],
[ 'title'=>'いっしん館内原', 'content'=>'水戸市にあるグループホーム(認知症対応型共同生活介護)です。内原エリアの認知症専門グループホーム。少人数制で家庭的な雰囲気の中、専門スタッフが丁寧にサポート。',
'meta'=>['tf_type'=>'グループホーム(認知症対応型)','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市杉崎町195-1','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"認知症対応
少人数制
家庭的な雰囲気
専門スタッフ常駐",'tf_comment'=>'内原エリアの認知症対応グループホーム。家庭的な環境で安心のケア','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>104] ],
[ 'title'=>'しまホーム平須', 'content'=>'水戸市にある住宅型有料老人ホームです。平須町エリアの住宅型老人ホーム。地域に根ざした安心のケアと生活支援を提供しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市平須町1431-3','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
生活支援サービス
看取り対応可",'tf_comment'=>'平須町エリアの住宅型老人ホーム。地域密着型の安心ケア','tf_featured'=>'0','tf_order'=>105] ],
[ 'title'=>'しまホーム河和田', 'content'=>'水戸市にある住宅型有料老人ホームです。河和田エリアの住宅型老人ホーム。アットホームな雰囲気で、一人ひとりに合わせた丁寧なケアを提供。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市河和田3-2352-32','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
生活支援サービス
看取り対応可",'tf_comment'=>'河和田エリアの住宅型老人ホーム。アットホームな雰囲気','tf_featured'=>'0','tf_order'=>106] ],
[ 'title'=>'しまナーシングホーム平須', 'content'=>'水戸市にある介護付き有料老人ホームです。平須町エリアの介護付き老人ホーム。医療・介護が充実した施設で、重度介護にも対応可能です。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市平須町1416','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
医療ケア充実
24時間介護スタッフ対応",'tf_comment'=>'平須町エリアの介護付き有料老人ホーム。重度介護にも対応','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>107] ],
[ 'title'=>'あんしんホーム水戸内原', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。内原町エリアのサービス付き高齢者住宅。月額143,750円〜。安心のサポート体制で快適な生活を支援。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市内原町910-1','tf_monthly_min'=>143750,'tf_monthly_max'=>143750,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
介護サービス連携",'tf_comment'=>'内原町エリアのサービス付き高齢者住宅。月額143,750円〜','tf_featured'=>'0','tf_order'=>108] ],
[ 'title'=>'はしかべ水戸河和田町', 'content'=>'水戸市にある住宅型有料老人ホームです。河和田町エリアの住宅型老人ホーム。月額138,000円〜。地域に密着した温かいサービスで安心の毎日を。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市河和田町1110-1','tf_monthly_min'=>138000,'tf_monthly_max'=>138000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
生活支援サービス
看取り対応可
入居金0",'tf_comment'=>'河和田町エリアの住宅型老人ホーム。月額138,000円〜','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>109] ],
[ 'title'=>'はしかべ水戸松本町', 'content'=>'水戸市にある住宅型有料老人ホームです。松本町エリアの住宅型老人ホーム。月額138,000円〜。手厚い生活支援と介護サービスを提供しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市松本町1-3','tf_monthly_min'=>138000,'tf_monthly_max'=>138000,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
生活支援サービス
看取り対応可
入居金0",'tf_comment'=>'松本町エリアの住宅型老人ホーム。月額138,000円〜','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>110] ],
[ 'title'=>'ふるさとホーム水戸赤塚', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。姫子エリアのサービス付き高齢者住宅。月額143,750円〜。故郷のような温かさで生活をサポート。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市姫子2-692-1','tf_monthly_min'=>143750,'tf_monthly_max'=>143750,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
介護サービス連携",'tf_comment'=>'姫子エリアのサービス付き高齢者住宅。月額143,750円〜','tf_featured'=>'0','tf_order'=>111] ],
[ 'title'=>'ここいち水戸城東', 'content'=>'水戸市にあるサービス付き高齢者向け住宅です。城東エリアのサービス付き高齢者住宅。月額128,460円〜。リーズナブルな価格で充実したサービスを提供。',
'meta'=>['tf_type'=>'サービス付き高齢者向け住宅','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市城東4-4-6','tf_monthly_min'=>128460,'tf_monthly_max'=>128460,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要支援〜要介護5
生活支援サービス
安否確認
入居金0",'tf_comment'=>'城東エリアのサービス付き高齢者住宅。月額128,460円〜','tf_featured'=>'0','tf_order'=>112] ],
[ 'title'=>'いっしん館水戸', 'content'=>'水戸市にあるグループホーム(認知症対応型共同生活介護)です。大塚町エリアの認知症専門グループホーム。少人数の家庭的な環境で認知症の方を専門スタッフが支援。',
'meta'=>['tf_type'=>'グループホーム(認知症対応型)','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市大塚町1612-14','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"認知症対応
少人数制
家庭的な雰囲気
専門スタッフ常駐",'tf_comment'=>'大塚町エリアの認知症対応グループホーム','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>113] ],
[ 'title'=>'えみてる水戸見川', 'content'=>'水戸市にある介護施設です。見川町エリアに位置し、地域の高齢者の生活を支援しています。',
'meta'=>['tf_type'=>'住宅型有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市見川町2131-2502','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"生活支援サービス
見川町エリア",'tf_comment'=>'見川町エリアの介護施設','tf_featured'=>'0','tf_order'=>114] ],
[ 'title'=>'はぴね水戸', 'content'=>'水戸市にある介護付き有料老人ホームです。堀町エリアの高級介護付き老人ホーム。月額242,229円〜。充実した設備と専門スタッフによる手厚いケアが特長。医療ケアにも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市堀町915-1','tf_monthly_min'=>242229,'tf_monthly_max'=>242229,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
医療ケア充実
24時間介護スタッフ対応
充実した設備",'tf_comment'=>'堀町エリアの介護付き有料老人ホーム。月額242,229円〜','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>115] ],
[ 'title'=>'水戸ケアセンターそよ風', 'content'=>'水戸市にあるグループホーム(認知症対応型共同生活介護)です。見和エリアの認知症専門グループホーム。そよ風グループの運営で、認知症の方が安心して暮らせる環境を提供。',
'meta'=>['tf_type'=>'グループホーム(認知症対応型)','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市見和1-298-9','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"認知症対応
少人数制
家庭的な雰囲気
専門スタッフ常駐",'tf_comment'=>'見和エリアの認知症対応グループホーム。そよ風グループ運営','tf_cond_ninchisho'=>'1','tf_featured'=>'0','tf_order'=>116] ],
[ 'title'=>'ケアレジデンス水戸本館', 'content'=>'水戸市にある介護付き有料老人ホームです。大塚町エリアの介護付き老人ホーム。医療・介護が充実した環境で、安心して暮らせます。看取りにも対応しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市大塚町1661','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
医療ケア充実
24時間介護スタッフ対応",'tf_comment'=>'大塚町エリアの介護付き有料老人ホーム','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>117] ],
[ 'title'=>'ケアレジデンス水戸新館', 'content'=>'水戸市にある介護付き有料老人ホームです。大塚町エリアの介護付き老人ホーム新館。本館と連携し、充実した介護サービスを提供しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市大塚町1741','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
医療ケア充実
24時間介護スタッフ対応",'tf_comment'=>'大塚町エリアの介護付き有料老人ホーム新館','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>118] ],
[ 'title'=>'ケアレジデンス水戸元吉田館', 'content'=>'水戸市にある介護付き有料老人ホームです。元吉田町エリアの介護付き老人ホーム。充実した医療・介護体制で安心の暮らしを支援します。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市元吉田町223','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
医療ケア充実
24時間介護スタッフ対応",'tf_comment'=>'元吉田町エリアの介護付き有料老人ホーム','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>119] ],
[ 'title'=>'しまナーシングホームガーデン', 'content'=>'水戸市にある介護付き有料老人ホームです。河和田町エリアの介護付き老人ホーム。緑豊かな環境の中で、医療・介護が充実した専門的なケアを提供しています。',
'meta'=>['tf_type'=>'介護付き有料老人ホーム','tf_area'=>'mito','tf_city'=>'水戸市','tf_prefecture'=>'茨城県','tf_address'=>'茨城県水戸市河和田町3461','tf_monthly_min'=>0,'tf_monthly_max'=>0,'tf_admission_min'=>0,'tf_admission_max'=>0,'tf_features'=>"要介護1~5
看取り対応可
医療ケア充実
24時間介護スタッフ対応
緑豊かな環境",'tf_comment'=>'河和田町エリアの介護付き有料老人ホーム。緑豊かな環境','tf_cond_iryo'=>'1','tf_cond_mitatori'=>'1','tf_featured'=>'0','tf_order'=>120] ],
];
foreach ( $facilities as $fac ) {
if ( get_page_by_title( $fac['title'], OBJECT, 'facility' ) ) continue;
$pid = wp_insert_post( [ 'post_title'=>$fac['title'], 'post_content'=>$fac['content'], 'post_type'=>'facility', 'post_status'=>'publish' ] );
if ( ! is_wp_error( $pid ) ) {
foreach ( $fac['meta'] as $k => $v ) update_post_meta( $pid, $k, $v );
$created[] = $fac['title'];
}
}
$cases = [
[ 'title'=>'退院後3日で施設が決まった—70代女性・日立市', 'content'=>'骨折で入院中の母(78歳)が退院後の行き先が決まらず、「3日以内に決めないと困る」という急な依頼にも関わらず、日立市内の介護付き有料老人ホームへの入居が実現しました。', 'meta'=>['tf_case_subtitle'=>'骨折入院後の退院先を急いで探していたケース','tf_case_area'=>'hitachi'], 'cat'=>'退院後の施設探し' ],
[ 'title'=>'認知症の母の施設探しで家族会議—80代女性・水戸市', 'content'=>'認知症が進んだ母(83歳)をめぐって兄弟間で意見が割れていました。中立的な立場から整理していただき、水戸市内のグループホームに入居できました。', 'meta'=>['tf_case_subtitle'=>'認知症介護で家族間の意見が割れていたケース','tf_case_area'=>'mito'], 'cat'=>'認知症対応' ],
[ 'title'=>'生活保護でも入れる施設を3週間で見つけた—60代男性・ひたちなか市', 'content'=>'生活保護を受給しながら独居で生活していた父(67歳)が転倒。ひたちなか市内で対応可能な施設を見つけていただき、3週間で入居が実現しました。', 'meta'=>['tf_case_subtitle'=>'生活保護受給中・独居での相談ケース','tf_case_area'=>'hitachinaka'], 'cat'=>'生活保護対応' ],
[ 'title'=>'身寄りがなくても入居できた—70代男性・日立市', 'content'=>'身元保証人がおらず「どこにも断られた」という状態でご相談いただきました。身元保証なしに対応している日立市内の施設を見つけていただき、行政との連携も含めてスムーズに入居が実現しました。', 'meta'=>['tf_case_subtitle'=>'身元保証人なしで入居先を探していたケース','tf_case_area'=>'hitachi'], 'cat'=>'身寄りなし相談' ],
[ 'title'=>'夫婦で同じ施設に入れた—80代夫婦・水戸市', 'content'=>'「夫婦で別々の施設になるのは嫌だ」というご希望でご相談いただきました。水戸市内で夫婦専用ルームのある施設を見つけていただき、二人で安心して暮らせる環境が整いました。', 'meta'=>['tf_case_subtitle'=>'夫婦同時入居を希望していたケース','tf_case_area'=>'mito'], 'cat'=>'夫婦入居' ],
[ 'title'=>'医療ケアが必要な母の施設探し—90代女性・ひたちなか市', 'content'=>'胃ろう・吸引など医療処置が必要な母(91歳)の入居先をご相談いただきました。医療機関と連携した施設をひたちなか市内で見つけていただき、安心して転居ができました。', 'meta'=>['tf_case_subtitle'=>'医療処置が必要な方の緊急施設探しケース','tf_case_area'=>'hitachinaka'], 'cat'=>'医療対応' ],
[ 'title'=>'看取りまで対応できる施設へ—90代男性・水戸市', 'content'=>'余命宣告を受けた父(94歳)の最後の住まいを探していました。看取りケアに力を入れている水戸市内の施設に入居でき、家族全員が納得のいく形で最後の時間を過ごせました。', 'meta'=>['tf_case_subtitle'=>'看取り対応の施設を急ぎで探したケース','tf_case_area'=>'mito'], 'cat'=>'看取り対応' ],
];
foreach ( $cases as $case ) {
if ( get_page_by_title( $case['title'], OBJECT, 'tf_case' ) ) continue;
$cat_term = term_exists( $case['cat'], 'case_category' ) ?: wp_insert_term( $case['cat'], 'case_category' );
$pid = wp_insert_post( [ 'post_title'=>$case['title'], 'post_content'=>$case['content'], 'post_type'=>'tf_case', 'post_status'=>'publish' ] );
if ( ! is_wp_error( $pid ) ) {
foreach ( $case['meta'] as $k => $v ) update_post_meta( $pid, $k, $v );
if ( ! is_wp_error( $cat_term ) ) {
$tid = is_array( $cat_term ) ? $cat_term['term_id'] : $cat_term;
wp_set_post_terms( $pid, [ $tid ], 'case_category' );
}
$created[] = $case['title'];
}
}
$columns = [
[ 'title'=>'介護付き有料老人ホームとサービス付き高齢者住宅の違いを徹底解説', 'content'=>"<h2>そもそも何が違う?</h2>\n<p>高齢者施設を探し始めると「介護付き有料老人ホーム」と「サービス付き高齢者向け住宅(サ高住)」という2種類をよく目にします。名前は似ていますが、サービス内容・費用・対象者に大きな違いがあります。</p>\n<h2>介護付き有料老人ホームとは</h2>\n<p>24時間介護スタッフが常駐し、介護・食事・生活支援のすべてが施設内で完結します。医療ケアが必要な方や重度介護の方にも対応しており、要介護度が高い方に適しています。</p>\n<h2>サービス付き高齢者向け住宅(サ高住)とは</h2>\n<p>安否確認と生活相談サービスが付いた賃貸住宅です。自立〜軽度介護の方が対象で、介護が必要になったら外部の介護サービスを自分で選んで利用します。</p>", 'meta'=>['tf_read_time'=>5], 'cat'=>'施設の種類・選び方' ],
[ 'title'=>'認知症対応施設を選ぶ5つのポイント', 'content'=>"<h2>認知症ケアで重要なこと</h2>\n<p>認知症のある方の施設選びには、通常の施設選びとは異なる視点が必要です。スタッフの専門性・環境の安全性・プログラムの充実度などを確認することが大切です。</p>\n<h2>ポイント①:スタッフの認知症専門資格</h2>\n<p>認知症ケア専門士や認知症介護実践者研修の修了者が在籍しているか確認しましょう。</p>\n<h2>ポイント②:少人数制かどうか</h2>\n<p>少人数のグループホームは認知症ケアに向いています。顔なじみのスタッフが対応することで本人の安心感が高まります。</p>", 'meta'=>['tf_read_time'=>4], 'cat'=>'認知症ケア' ],
[ 'title'=>'生活保護を受けながら老人ホームに入れる?費用と手続きを解説', 'content'=>"<h2>よくある誤解</h2>\n<p>「生活保護を受けていると施設に入れない」というのは誤解です。生活保護受給者でも入居できる施設は存在します。ただし、施設の種類や手続きに注意が必要です。</p>\n<h2>入居できる施設の種類</h2>\n<p>特別養護老人ホームや生活保護対応の有料老人ホーム、サービス付き高齢者向け住宅などが対応しています。</p>\n<h2>費用の仕組み</h2>\n<p>生活保護受給者の場合、介護費用は介護保険(1割負担)と生活保護の「介護扶助」で賄われます。食費・居住費も「補足給付」の対象になる場合があります。</p>", 'meta'=>['tf_read_time'=>5], 'cat'=>'費用・制度' ],
[ 'title'=>'身元保証人がいなくても老人ホームに入れる?対応施設と手続きを解説', 'content'=>"<h2>身元保証人とは</h2>\n<p>老人ホームへの入居時に求められる「身元保証人」とは、緊急時の連絡先や費用の支払い保証、退去時の荷物整理などを担う方のことです。</p>\n<h2>身元保証人なしで入居できる施設は存在する</h2>\n<p>すべての施設が身元保証人を必須にしているわけではありません。特別養護老人ホームや一部の有料老人ホーム・サ高住では、身元保証人なしでも入居を受け付けている施設があります。</p>\n<h2>身元保証サービスという選択肢</h2>\n<p>NPOや民間会社が提供する「身元保証サービス」を利用する方法もあります。費用はかかりますが、保証人がいない方の入居をサポートしてくれます。</p>", 'meta'=>['tf_read_time'=>5], 'cat'=>'入居の手続き' ],
[ 'title'=>'夫婦で老人ホームに入居する方法—費用・施設選びのポイント', 'content'=>"<h2>夫婦での入居は可能?</h2>\n<p>夫婦そろって施設に入居することは可能です。ただし、施設によって夫婦入居の対応状況は大きく異なります。事前に確認することが大切です。</p>\n<h2>夫婦入居ができる施設の種類</h2>\n<p>介護付き有料老人ホームやサービス付き高齢者向け住宅では、夫婦専用の居室やフロアを設けているところがあります。グループホームは原則的に個室のため、夫婦同時入居は難しい場合があります。</p>\n<h2>介護度が異なる場合はどうする?</h2>\n<p>夫婦で介護度が異なるケースもよくあります。同じ施設に入居できるよう、施設探しの際に「介護度の異なる夫婦の受け入れ実績があるか」を確認しましょう。</p>", 'meta'=>['tf_read_time'=>5], 'cat'=>'施設の種類・選び方' ],
[ 'title'=>'グループホームとは?特徴・費用・認知症との関係を解説', 'content'=>"<h2>グループホームとは</h2>\n<p>グループホーム(認知症対応型共同生活介護)は、認知症の方が少人数で共同生活を送る介護施設です。定員は9名以下が一般的で、アットホームな環境が特徴です。</p>\n<h2>グループホームの費用</h2>\n<p>月額費用の目安は12万〜20万円程度です。介護付き有料老人ホームより安くなる場合が多いですが、施設によって異なります。</p>\n<h2>グループホームが向いている人</h2>\n<p>認知症の症状がある方、少人数の落ち着いた環境を希望する方、地域に馴染んだ生活を続けたい方に向いています。入居には「認知症の診断」が必要です。</p>", 'meta'=>['tf_read_time'=>4], 'cat'=>'認知症ケア' ],
[ 'title'=>'老人ホームの見学で確認すべき10のポイント', 'content'=>"<h2>見学は入居を決める重要なステップ</h2>\n<p>老人ホームのパンフレットやウェブサイトだけでは分からないことがたくさんあります。実際に見学して確認することが大切です。</p>\n<h2>確認すべきポイント</h2>\n<p>①スタッフの表情・対応の様子、②居室の広さ・においの状態、③共用スペースの清潔さ、④食事の内容・雰囲気、⑤入居者の様子(表情・活動)、⑥夜間のスタッフ体制、⑦緊急時の対応フロー、⑧医療連携の内容、⑨面会時間・家族の関わり方、⑩退去となるケースと条件。</p>\n<h2>一人で見学に行くのが不安な方へ</h2>\n<p>つなぐ、ふくし。では施設見学への同行サービスを行っています。プロの視点からチェックポイントを一緒に確認しますので、ぜひご活用ください。</p>", 'meta'=>['tf_read_time'=>6], 'cat'=>'施設の種類・選び方' ],
];
foreach ( $columns as $col ) {
if ( get_page_by_title( $col['title'], OBJECT, 'tf_column' ) ) continue;
$cat_term = term_exists( $col['cat'], 'column_category' ) ?: wp_insert_term( $col['cat'], 'column_category' );
$pid = wp_insert_post( [ 'post_title'=>$col['title'], 'post_content'=>$col['content'], 'post_type'=>'tf_column', 'post_status'=>'publish' ] );
if ( ! is_wp_error( $pid ) ) {
foreach ( $col['meta'] as $k => $v ) update_post_meta( $pid, $k, $v );
if ( ! is_wp_error( $cat_term ) ) {
$tid = is_array( $cat_term ) ? $cat_term['term_id'] : $cat_term;
wp_set_post_terms( $pid, [ $tid ], 'column_category' );
}
$created[] = $col['title'];
}
}
$faqs = [
[ 'q'=>'相談は本当に無料ですか?', 'a'=>'はい、ご相談はすべて無料です。施設への入居が決まった場合にのみ、施設側からご紹介料をいただくビジネスモデルです。', 'order'=>1 ],
[ 'q'=>'日立市・水戸市以外でも相談できますか?', 'a'=>'はい、電話・オンラインでの相談は全国どこからでも対応しています。見学同行サービスは日立〜水戸エリアに限りますが、施設情報の提供・比較のサポートは全国対応です。', 'order'=>2 ],
[ 'q'=>'急いで施設を探しています。すぐに対応できますか?', 'a'=>'急ぎのご相談も対応しています。病院退院後の行き先が緊急に必要なケースなど、急を要する状況での相談実績があります。まずお電話でご連絡ください。', 'order'=>3 ],
[ 'q'=>'生活保護を受けていますが、施設に入れますか?', 'a'=>'はい、入居できる施設があります。生活保護受給者を受け入れている施設を対象に探します。担当ケースワーカーとの連携もサポートします。', 'order'=>4 ],
[ 'q'=>'認知症が進んでいても相談できますか?', 'a'=>'はい、認知症の方の施設探しが最も多いご相談です。認知症の段階・種類・行動特性に合わせた施設をご提案します。', 'order'=>5 ],
];
foreach ( $faqs as $faq ) {
if ( get_page_by_title( $faq['q'], OBJECT, 'tf_faq' ) ) continue;
$pid = wp_insert_post( [ 'post_title'=>$faq['q'], 'post_type'=>'tf_faq', 'post_status'=>'publish' ] );
if ( ! is_wp_error( $pid ) ) {
update_post_meta( $pid, 'tf_faq_answer', $faq['a'] );
update_post_meta( $pid, 'tf_faq_order', $faq['order'] );
$created[] = $faq['q'];
}
}
flush_rewrite_rules();
return $created;
}
/* ============================================================
13. バーチャルページ — リライトルール追加
(LPページ・エリアページ用)
============================================================ */
add_action( 'init', 'tf_add_virtual_rewrites' );
function tf_add_virtual_rewrites() {
// 悩み軸LPページ: /tunagu-fukushi/lp/{slug}/
add_rewrite_rule(
'^' . TF_BASE . '/lp/([a-z0-9\-]+)/?$',
'index.php?tf_lp_slug=$matches[1]',
'top'
);
// エリアページ: /tunagu-fukushi/area/{city}/
add_rewrite_rule(
'^' . TF_BASE . '/area/([a-z0-9\-]+)/?$',
'index.php?tf_area_slug=$matches[1]',
'top'
);
// ホームページ: /tunagu-fukushi/
add_rewrite_rule(
'^' . TF_BASE . '/?$',
'index.php?pagename=' . TF_BASE,
'top'
);
// 比較ページ: /tunagu-fukushi/compare/
add_rewrite_rule(
'^' . TF_BASE . '/compare/?$',
'index.php?tf_compare=1',
'top'
);
}
add_filter( 'query_vars', 'tf_add_query_vars' );
function tf_add_query_vars( $vars ) {
$vars[] = 'tf_lp_slug';
$vars[] = 'tf_area_slug';
$vars[] = 'tf_compare';
return $vars;
}
/* ============================================================
14. バーチャルページ — テンプレートリダイレクト
============================================================ */
add_action( 'template_redirect', 'tf_virtual_page_redirect' );
function tf_virtual_page_redirect() {
$lp_slug = get_query_var( 'tf_lp_slug' );
$area_slug = get_query_var( 'tf_area_slug' );
if ( get_query_var('tf_compare') ) { tf_render_compare_page(); exit; }
if ( $lp_slug ) { tf_render_lp_page( $lp_slug ); exit; }
if ( $area_slug ) { tf_render_area_page( $area_slug ); exit; }
// 施設詳細ページ
if ( is_singular( 'facility' ) ) {
tf_render_facility_single();
exit;
}
// ポータルホームページ
if ( is_page( TF_BASE ) ) {
tf_render_home_page();
exit;
}
// 施設一覧・タクソノミー(横幅・デザイン統一のためインラインレンダリング)
if ( is_post_type_archive( 'facility' ) ||
is_tax( 'facility_area' ) ||
is_tax( 'facility_condition' ) ||
is_tax( 'facility_type' ) ) {
tf_render_facility_archive();
exit;
}
}
/* ============================================================
15A-0. 施設詳細ページインラインレンダリング
============================================================ */
function tf_render_facility_single() {
global $post;
$base = home_url( '/' . TF_BASE . '/' );
$id = $post->ID;
$type = get_post_meta( $id, 'tf_type', true );
$pref = get_post_meta( $id, 'tf_prefecture', true ) ?: '茨城県';
$city = get_post_meta( $id, 'tf_city', true );
$address = get_post_meta( $id, 'tf_address', true );
$access = get_post_meta( $id, 'tf_access', true );
$operator = get_post_meta( $id, 'tf_operator', true );
$fee_min = get_post_meta( $id, 'tf_monthly_min', true );
$fee_max = get_post_meta( $id, 'tf_monthly_max', true );
$adm_min = get_post_meta( $id, 'tf_admission_min', true );
$adm_max = get_post_meta( $id, 'tf_admission_max', true );
$features = get_post_meta( $id, 'tf_features', true );
$recommended = get_post_meta( $id, 'tf_recommended', true );
$comment = get_post_meta( $id, 'tf_comment', true );
$room_size= get_post_meta( $id, 'tf_room_size', true );
$url = get_post_meta( $id, 'tf_url', true );
$tel = get_post_meta( $id, 'tf_tel', true );
$lat = (float) get_post_meta( $id, 'tf_lat', true );
$lng = (float) get_post_meta( $id, 'tf_lng', true );
$img = get_the_post_thumbnail( $id, 'large', ['class'=>'sf-hero-img'] );
$title = get_the_title();
$type_cls = tf_type_css_class($type);
$cond_map = [
'tf_cond_ninchisho' => ['', '認知症相談可'],
'tf_cond_iryo' => ['', '医療相談可'],
'tf_cond_mitatori' => ['', '看取り対応'],
'tf_cond_seikatsuhogo' => ['', '生活保護相談可'],
'tf_cond_mimoto' => ['', '身寄りなし相談可'],
'tf_cond_fufu' => ['', '夫婦入居相談可'],
'tf_bath' => ['', '機械浴・リフト浴'],
];
$seo_title = esc_html($title) . 'の詳細情報 | つなぐ、ふくし。';
$seo_desc = get_post_meta($id,'tf_seo_desc',true) ?: esc_attr($pref.$city.'の'.($type?:'施設').'「'.$title.'」の月額費用・入居条件・設備情報。無料相談はつなぐ、ふくし。まで。');
$og_img_f = get_the_post_thumbnail_url($id,'large') ?: tf_get_facility_photo_url($title);
$_fee_desc = '';
if(get_post_meta($id,'tf_monthly_min',true)) $_fee_desc = '月額' . number_format((float)get_post_meta($id,'tf_monthly_min',true)) . '円~';
if(get_post_meta($id,'tf_monthly_max',true)) $_fee_desc .= number_format((float)get_post_meta($id,'tf_monthly_max',true)) . '円';
$_json_ld = json_encode([
'@context' => 'https://schema.org',
'@type' => ['LocalBusiness', 'LodgingBusiness'],
'name' => $title,
'description' => $seo_desc,
'address' => ['@type'=>'PostalAddress','addressLocality'=>$city,'addressRegion'=>$pref,'addressCountry'=>'JP'],
'priceRange' => $_fee_desc,
'image' => $og_img_f ?: '',
'url' => get_permalink($id),
'telephone' => get_post_meta($id,'tf_tel',true) ?: '',
'provider' => ['@type'=>'Organization','name'=>'\u3064\u306a\u3050\u3001\u3075\u304f\u3057\u3002','url'=>$base],
], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
$_extra_head = '<script type="application/ld+json">' . $_json_ld . '</script>' . "\n";
$_extra_head .= '<meta property="og:image:width" content="1200">' . "\n";
$_extra_head .= '<meta property="og:image:height" content="630">' . "\n";
$_extra_head .= '<meta property="og:locale" content="ja_JP">' . "\n";
tf_portal_header($title . 'の\u8a73\u7d30', $seo_desc, $og_img_f, $_extra_head);
?>
<style>
/* ===== 施設詳細ページ ===== */
.sf-wrap{max-width:900px;margin:0 auto;padding:32px 24px 64px}
.sf-hero{position:relative;margin-bottom:28px;border-radius:10px;overflow:hidden;background:#e8f5f2}
.sf-hero-img{width:100%;height:360px;object-fit:cover;display:block}
.sf-hero-overlay{position:absolute;bottom:0;left:0;right:0;padding:20px 24px;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff}
.sf-hero-overlay .sf-hero-badge{font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:4px;background:rgba(255,255,255,.25);display:inline-block;margin-bottom:8px}
#sf-mini-map{height:260px;border-radius:10px;margin-bottom:28px;overflow:hidden;border:1px solid #dceee9}
.sf-hero-placeholder{height:260px;display:flex;align-items:center;justify-content:center;font-size:3rem;background:linear-gradient(135deg,#e8f5f2,#c5e8df)}
.sf-type-badge{
display:inline-block;font-size:.75rem;font-weight:700;
padding:4px 12px;border-radius:4px;margin-bottom:10px;
}
.sf-title{font-size:1.6rem;font-weight:800;color:#1a2a24;margin:0 0 6px;line-height:1.3}
.sf-loc{font-size:.9rem;color:#666;margin:0 0 20px}
.sf-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px}
@media(max-width:620px){.sf-grid{grid-template-columns:1fr}}
.sf-card{background:#f8fcfb;border:1px solid #dceee9;border-radius:10px;padding:18px 20px}
.sf-card-title{font-size:.8rem;font-weight:700;color:#1F5749;margin:0 0 12px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #dceee9;padding-bottom:8px}
.sf-info-row{display:flex;align-items:baseline;gap:8px;margin-bottom:8px;font-size:.9rem}
.sf-info-row:last-child{margin-bottom:0}
.sf-info-label{color:#888;font-size:.8rem;flex-shrink:0;min-width:70px}
.sf-info-val{color:#222;font-weight:600}
.sf-fee-big{font-size:1.35rem;font-weight:800;color:var(--p);line-height:1.1}
.sf-fee-note{font-size:.75rem;color:#888;margin-top:4px}
.sf-cond-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sf-cond-item{
display:flex;align-items:center;gap:8px;
background:#fff;border:1px solid #d4ece6;border-radius:8px;
padding:8px 12px;font-size:.82rem;color:#1a4a38;
}
.sf-cond-item.off{background:#fafafa;border-color:#e5e5e5;color:#bbb;filter:grayscale(1)}
.sf-cond-icon{font-size:1.1rem;flex-shrink:0}
.sf-features{margin-bottom:28px}
.sf-features ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.sf-features li{display:inline-flex;align-items:center;gap:7px;background:linear-gradient(135deg,#f0f9f4,#e8f5ee);border:1.5px solid #b8dfc6;border-radius:24px;padding:7px 16px;font-size:.85rem;color:#1b4a2e;font-weight:600;line-height:1.3;transition:all .2s}
.sf-features li:hover{background:linear-gradient(135deg,#d8f0e4,#c8e8d4);border-color:#2e7d52;transform:translateY(-1px)}
.sf-features li::before{content:'✓';color:#2e7d52;font-weight:900;font-size:.9rem;flex-shrink:0}
.sf-section-title{font-size:1rem;font-weight:700;color:#1a2a24;margin:0 0 14px;padding-left:10px;border-left:3px solid var(--p)}
.sf-cta-box{background:linear-gradient(135deg,var(--pd),var(--p));border-radius:12px;padding:32px;text-align:center;color:#fff;margin-top:36px}
.sf-cta-box h3{font-size:1.2rem;font-weight:800;margin:0 0 10px}
.sf-cta-box p{opacity:.9;font-size:.9rem;margin:0 0 22px;line-height:1.6}
.sf-btn-white{display:inline-block;background:#fff;color:var(--pd);font-weight:800;font-size:.95rem;padding:13px 34px;border-radius:50px;text-decoration:none;transition:transform .15s,box-shadow .15s}
.sf-btn-white:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15)}
/* スティッキーCTAバー(詳細ページ) */
#sf-sticky-cta{
position:fixed;bottom:0;left:0;right:0;z-index:900;
background:#fff;border-top:2px solid #e0ede9;
padding:10px 24px;
display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
box-shadow:0 -4px 20px rgba(31,87,73,.12);
transform:translateY(100%);
transition:transform .3s cubic-bezier(.23,1,.32,1);
}
#sf-sticky-cta.visible{transform:translateY(0)}
.sf-sticky-name{font-size:.82rem;font-weight:700;color:#1a2a24;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.sf-sticky-btn{
display:inline-flex;align-items:center;gap:6px;
height:40px;padding:0 20px;border-radius:50px;font-size:.85rem;font-weight:700;
text-decoration:none;white-space:nowrap;transition:transform .15s,box-shadow .15s;
}
.sf-sticky-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.15)}
.sf-sticky-btn-main{background:var(--p);color:#fff}
.sf-sticky-btn-line{background:#06C755;color:#fff}
.sf-sticky-btn-tel{background:#f0faf6;color:var(--pd);border:1.5px solid var(--p)}
@media(max-width:600px){
#sf-sticky-cta{padding:8px 12px;gap:8px}
.sf-sticky-name{display:none}
.sf-sticky-btn{font-size:.8rem;padding:0 14px;height:38px}
}
/* スティッキーCTAバーの分だけ下余白を確保 */
.sf-wrap{padding-bottom:96px}
.sf-related-sec{background:#f8f9fa;padding:48px 20px;margin-top:40px}
.sf-related-sec-inner{max-width:920px;margin:0 auto}
.sf-related-sec-title{font-size:1.3rem;font-weight:800;color:#1F5749;margin:0 0 6px;text-align:center}
.sf-related-sec-sub{text-align:center;color:#666;font-size:.9rem;margin:0 0 28px}
.sf-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:640px){.sf-related-grid{grid-template-columns:1fr}}
.sf-rel-card{display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 2px 12px rgba(0,0,0,.08);transition:transform .2s,box-shadow .2s}
.sf-rel-card:hover{transform:translateY(-4px);box-shadow:0 6px 24px rgba(0,0,0,.14)}
.sf-rel-img{height:130px;overflow:hidden;background:#e8f4f0}
.sf-rel-img img{width:100%;height:100%;object-fit:cover}
.sf-rel-noimg{width:100%;height:100%;background:linear-gradient(135deg,#d1e8e2,#a8d5c9)}
.sf-rel-body{padding:14px;flex:1;display:flex;flex-direction:column;gap:4px}
.sf-rel-badge{font-size:.72rem;padding:3px 8px;border-radius:20px;background:#e8f4f0;color:#1F5749;font-weight:600;display:inline-block;margin-bottom:4px}
.sf-rel-name{font-size:.95rem;font-weight:700;color:#222;margin:0;line-height:1.4}
.sf-rel-loc{font-size:.78rem;color:#888;margin:0}
.sf-rel-fee{font-size:.82rem;color:#1F5749;font-weight:600;margin:0}
.sf-rel-more-link{font-size:.78rem;color:#1F5749;margin-top:auto;text-align:right;display:block}
.sf-related-all{text-align:center;margin-top:24px}
.sf-related-all-btn{display:inline-block;padding:12px 32px;border:2px solid #1F5749;color:#1F5749;border-radius:25px;font-weight:600;font-size:.9rem;text-decoration:none;transition:all .2s}
.sf-related-all-btn:hover{background:#1F5749;color:#fff}
.sf-bottom-cta{background:linear-gradient(135deg,#0d2b23 0%,#1F5749 100%);padding:56px 20px;text-align:center;color:#fff;margin-top:0}
.sf-bottom-cta-inner{max-width:600px;margin:0 auto}
.sf-bottom-cta-label{font-size:.8rem;letter-spacing:.12em;color:rgba(245,197,24,.85);text-transform:uppercase;margin:0 0 12px}
.sf-bottom-cta-title{font-size:1.55rem;font-weight:800;line-height:1.45;margin:0 0 14px;color:#fff}
.sf-bottom-cta-sub{font-size:.88rem;color:rgba(255,255,255,.75);line-height:1.7;margin:0 0 28px}
.sf-bottom-cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}
.sf-bottom-cta-main{display:inline-block;padding:14px 32px;background:#f5c518;color:#0d2b23;border-radius:30px;font-weight:800;font-size:1rem;text-decoration:none;transition:opacity .2s}
.sf-bottom-cta-main:hover{opacity:.88}
.sf-bottom-cta-tel{display:inline-block;padding:14px 28px;border:2px solid rgba(255,255,255,.5);color:#fff;border-radius:30px;font-weight:700;font-size:1rem;text-decoration:none;transition:border-color .2s}
.sf-bottom-cta-tel:hover{border-color:#fff}
.sf-bottom-cta-note{font-size:.78rem;color:rgba(255,255,255,.5);margin:0}
</style>
<div class="sf-wrap">
<?php tf_breadcrumb([['label'=>'施設を探す','url'=>$base.'facilities/'],['label'=>esc_html($title)]]); ?>
<!-- ヒーロー画像 -->
<div class="sf-hero" style="margin-top:20px">
<?php
$tf_static = tf_get_facility_photo_url(get_the_title());
if ($img): echo $img;
elseif ($tf_static): echo '<img src="' . esc_url($tf_static) . '" alt="" class="sf-hero-img" loading="lazy">';
else: ?><div class="sf-hero-placeholder"></div><?php endif; ?>
<?php if ($img || $tf_static): ?>
<div class="sf-hero-overlay">
<?php if ($type): ?><span class="sf-hero-badge <?php echo esc_attr($type_cls); ?>"><?php echo esc_html($type); ?></span><?php endif; ?>
<h1 style="font-size:1.5rem;font-weight:800;margin:6px 0 4px;color:#fff;line-height:1.3"><?php echo esc_html($title); ?></h1>
<p style="font-size:.85rem;margin:0;color:#fff"><?php echo esc_html(trim($pref.' '.$city)); ?></p>
</div>
<?php endif; ?>
</div>
<!-- タイトルエリア -->
<?php if ($type): ?><span class="sf-type-badge <?php echo esc_attr($type_cls); ?>"><?php echo esc_html($type); ?></span><?php endif; ?>
<h1 class="sf-title"><?php echo esc_html($title); ?></h1>
<p class="sf-loc"><?php echo esc_html(trim($pref.' '.$city)); ?><?php if($address): ?> | <?php echo esc_html($address); ?><?php endif; ?></p>
<!-- 費用・入居条件グリッド -->
<div class="sf-grid">
<!-- 月額費用 -->
<div class="sf-card">
<p class="sf-card-title">月額費用</p>
<div class="sf-fee-big"><?php echo tf_format_fee($fee_min,$fee_max); ?></div>
<?php if ($adm_min !== '' && $adm_min !== false): ?>
<p class="sf-fee-note">
入居一時金:<?php
$amin = (int)$adm_min;
$amax = (int)($adm_max ?: $adm_min);
if ($amin === 0 && $amax === 0) echo 'なし';
elseif ($amin === $amax) echo number_format($amin/10000).'万円';
else echo number_format($amin/10000).'万円~'.number_format($amax/10000).'万円';
?>
</p>
<?php endif; ?>
<?php if ($room_size): ?>
<p class="sf-fee-note">居室面積:<?php echo esc_html($room_size); ?></p>
<?php endif; ?>
</div>
<!-- 施設情報 -->
<div class="sf-card">
<p class="sf-card-title">施設情報</p>
<?php if ($operator): ?>
<div class="sf-info-row"><span class="sf-info-label">運営</span><span class="sf-info-val"><?php echo esc_html($operator); ?></span></div>
<?php endif; ?>
<?php if ($type): ?>
<div class="sf-info-row"><span class="sf-info-label">施設種別</span><span class="sf-info-val"><?php echo esc_html($type); ?></span></div>
<?php endif; ?>
<?php if ($city): ?>
<div class="sf-info-row"><span class="sf-info-label">エリア</span><span class="sf-info-val"><?php echo esc_html($pref.' '.$city); ?></span></div>
<?php endif; ?>
<?php if ($access): ?>
<div class="sf-info-row"><span class="sf-info-label">アクセス</span><span class="sf-info-val"><?php echo esc_html($access); ?></span></div>
<?php endif; ?>
<?php if ($tel): ?>
<div class="sf-info-row"><span class="sf-info-label">電話</span><span class="sf-info-val"><a href="tel:<?php echo esc_attr($tel); ?>" style="color:var(--p);font-weight:700"><?php echo esc_html($tel); ?></a></span></div>
<?php endif; ?>
<?php if ($url): ?>
<div class="sf-info-row"><span class="sf-info-label">公式サイト</span><span class="sf-info-val"><a href="<?php echo esc_url($url); ?>" target="_blank" rel="noopener" style="color:var(--p)">サイトを見る →</a></span></div>
<?php endif; ?>
</div>
</div>
<!-- 対応状況バッジグリッド -->
<p class="sf-section-title">入居条件・対応サービス</p>
<div class="sf-cond-grid" style="margin-bottom:28px">
<?php foreach ($cond_map as $key => [$icon, $label]):
$active = get_post_meta($id, $key, true);
?>
<div class="sf-cond-item<?php echo $active ? '' : ' off'; ?>">
<span class="sf-cond-icon"><?php echo $icon; ?></span>
<span><?php echo esc_html($label); ?><?php echo $active ? '' : '(要確認)'; ?></span>
</div>
<?php endforeach; ?>
</div>
<!-- 施設の特徴 -->
<?php
$feat_items = array_values(array_filter(array_map('trim', preg_split('/[\r\n。]+/u', $features, -1, PREG_SPLIT_NO_EMPTY)), function($v){ $c=preg_replace('/[\s\x{3000}]+/u','',$v); return mb_strlen($c)>=3; }));
if ($features && count($feat_items)): ?>
<div class="sf-features">
<p class="sf-section-title">施設の特征</p>
<ul>
<?php foreach ($feat_items as $feat): ?>
<li><?php echo esc_html($feat); ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<!-- こんな方におすすめ -->
<?php if ($recommended): ?>
<div class="sf-features" style="margin-bottom:28px">
<p class="sf-section-title">こんな方におすすめ</p>
<ul>
<?php foreach (array_filter(array_map('trim', explode("\n",$recommended))) as $r): ?>
<li><?php echo esc_html($r); ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<!-- ひと言コメント -->
<?php if ($comment): ?>
<div style="background:#fffbf0;border:1px solid #ffe8b0;border-radius:10px;padding:16px 20px;margin-bottom:28px;font-size:.9rem;color:#5a4500;line-height:1.7">
<strong style="display:block;margin-bottom:4px;font-size:.8rem;color:#a07010">スタッフより</strong>
<?php echo esc_html($comment); ?>
</div>
<?php endif; ?>
<!-- 本文(WordPressエディター) -->
<?php
$content = get_the_content();
if ($content) {
echo '<div style="font-size:.9rem;line-height:1.8;color:#333;margin-bottom:28px">';
echo apply_filters('the_content', $content);
echo '</div>';
}
?>
<!-- 所在地マップ -->
<?php if ( $lat && $lng ): ?>
<p class="sf-section-title">所在地マップ</p>
<div id="sf-mini-map"></div>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"/>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script>
(function tfSfMap(){
if(typeof L==='undefined'){setTimeout(tfSfMap,80);return;}
var m = L.map('sf-mini-map', {zoomControl:true, scrollWheelZoom:false})
.setView([<?php echo $lat; ?>, <?php echo $lng; ?>], 15);
L.tileLayer('https://maps.gsi.go.jp/xyz/std/{z}/{x}/{y}.png',
{maxZoom:18, attribution:'© OpenStreetMap'}).addTo(m);
L.marker([<?php echo $lat; ?>, <?php echo $lng; ?>])
.addTo(m).bindPopup('<?php echo esc_js($title); ?>').openPopup();
})();
</script>
<?php endif; ?>
<!-- 近隣の施設 -->
<?php
$related_posts = get_posts(['post_type'=>'facility','posts_per_page'=>3,'post__not_in'=>[$id],'meta_query'=>[['key'=>'tf_city','value'=>$city,'compare'=>'=']],'orderby'=>'rand']);
if(!$related_posts)$related_posts=get_posts(['post_type'=>'facility','posts_per_page'=>3,'post__not_in'=>[$id],'meta_query'=>[['key'=>'tf_type','value'=>$type,'compare'=>'=']],'orderby'=>'rand']);
?>
<?php if($related_posts): ?>
<p class="sf-section-title">同エリアの施設</p>
<div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:28px">
<?php foreach($related_posts as $rp):
$rt=esc_html(get_the_title($rp->ID));
$rtype=esc_html(get_post_meta($rp->ID,'tf_type',true));
$rcity=esc_html(get_post_meta($rp->ID,'tf_city',true));
$rlink=esc_url(get_permalink($rp->ID));
$rimg=get_the_post_thumbnail_url($rp->ID,'medium')?:tf_get_facility_photo_url(get_the_title($rp->ID));
?>
<a href="<?php echo $rlink;?>" style="display:block;text-decoration:none;border:1px solid #e0ede9;border-radius:8px;overflow:hidden;transition:box-shadow .2s" onmouseover="this.style.boxShadow='0 4px 16px rgba(0,0,0,.1)'" onmouseout="this.style.boxShadow='none'">
<?php if($rimg):?><div style="height:110px;overflow:hidden"><img src="<?php echo esc_url($rimg);?>" style="width:100%;height:100%;object-fit:cover" loading="lazy" alt="<?php echo $rt;?>"></div><?php else:?><div style="height:110px;background:linear-gradient(135deg,#e8f5f2,#c5e8df);display:flex;align-items:center;justify-content:center;font-size:2rem"></div><?php endif;?>
<div style="padding:10px 12px">
<?php if($rtype):?><span style="font-size:.68rem;font-weight:700;background:#e8f5f2;color:var(--p);padding:2px 6px;border-radius:3px"><?php echo $rtype;?></span><?php endif;?>
<p style="font-size:.85rem;font-weight:700;color:#1a2a24;margin:4px 0 2px;line-height:1.3"><?php echo $rt;?></p>
<?php if($rcity):?><p style="font-size:.72rem;color:#888;margin:0"><?php echo $rcity;?></p><?php endif;?>
</div>
</a>
<?php endforeach;?>
</div>
<?php endif;?>
<!-- gmap -->
<?php if ($address || ($pref && $city)): ?>
<div style="margin-bottom:28px">
<p class="sf-section-title">ðï¸ Access / Google Map</p>
<?php $map_q = urlencode($address ?: trim($pref.' '.$city)); ?>
<div style="border-radius:12px;overflow:hidden;border:1.5px solid #d4ece6">
<iframe src="https://maps.google.com/maps?q=<?php echo $map_q; ?>&output=embed&z=16&hl=ja" width="100%" height="270" style="border:0;display:block" loading="lazy" allowfullscreen></iframe>
</div>
<?php if ($address): ?>
<p style="font-size:.82rem;color:#666;margin:8px 0 0;padding-left:2px">
<?php echo esc_html($address); ?>
<a href="https://maps.google.com/?q=<?php echo $map_q; ?>" target="_blank" rel="noopener" style="color:var(--p);font-weight:600">GoogleMap for open â</a>
</p>
<?php endif; ?>
</div>
<?php endif; ?>
<!-- CTA -->
<div class="sf-cta-box">
<h3>「<?php echo esc_html($title); ?>」について<br>無料で相談してみませんか?</h3>
<p>見学同行・費用の目安・入居手続きまで、専門スタッフが丁寧にご説明します。<br>お電話・メールどちらでも対応しています。</p>
<a href="<?php echo esc_url($base.'contact/'); ?>" class="sf-btn-white">無料相談・見学申し込み →</a>
</div>
<!-- 一覧に戻る -->
<div style="text-align:center;margin-top:24px">
<a href="<?php echo esc_url($base.'facilities/'); ?>" style="font-size:.85rem;color:var(--p);text-decoration:none">← 施設一覧に戻る</a>
</div>
</div>
<!-- スティッキーCTAバー -->
<?php
$line_text = urlencode('【' . $title . '】の詳細ページです。' . get_permalink());
$line_url = 'https://social-plugins.line.me/lineit/share?url=' . urlencode(get_permalink());
?>
<div id="sf-sticky-cta">
<span class="sf-sticky-name"><?php echo esc_html($title); ?></span>
<a href="tel:09014807174" class="sf-sticky-btn sf-sticky-btn-tel">電話で相談</a>
<a href="<?php echo esc_url($base.'contact/'); ?>" class="sf-sticky-btn sf-sticky-btn-main">無料相談・見学申込</a>
<a href="<?php echo esc_url($line_url); ?>" class="sf-sticky-btn sf-sticky-btn-line" target="_blank" rel="noopener">LINEで共有</a>
</div>
<script>
(function(){
var bar = document.getElementById('sf-sticky-cta');
if (!bar) return;
var shown = false;
window.addEventListener('scroll', function(){
var show = window.scrollY > 300;
if (show !== shown) { bar.classList.toggle('visible', show); shown = show; }
}, {passive:true});
})();
</script>
<?php
$_city2=get_post_meta($id,'tf_city',true);
$_sim=get_posts(['post_type'=>'facility','posts_per_page'=>3,'post__not_in'=>[$id],'orderby'=>'rand','meta_query'=>['relation'=>'OR',['key'=>'tf_city','value'=>$_city2,'compare'=>'='],['key'=>'tf_type','value'=>$type,'compare'=>'=']]]);
if(!empty($_sim)):?>
<section class="sf-related-sec">
<div class="sf-related-sec-inner">
<h2 class="sf-related-sec-title">同じエリアのおすすめ施設</h2>
<p class="sf-related-sec-sub"><?php echo esc_html($_city2?$_city2.'エリア':'近隣');?>の他の施設と比較しましょう</p>
<div class="sf-related-grid">
<?php foreach($_sim as $_s):$_sid=$_s->ID;$_stype=get_post_meta($_sid,'tf_type',true);$_sfee=get_post_meta($_sid,'tf_monthly_min',true);$_scity=get_post_meta($_sid,'tf_city',true);$_simg=get_the_post_thumbnail($_sid,'medium');$_surl=get_permalink($_sid);$_snam=$_s->post_title;$_stcl=tf_type_css_class($_stype);?>
<a href="<?php echo esc_url($_surl);?>" class="sf-rel-card">
<div class="sf-rel-img"><?php if($_simg): echo $_simg; else:?><div class="sf-rel-noimg"></div><?php endif;?></div>
<div class="sf-rel-body">
<?php if($_stype):?><span class="sf-rel-badge <?php echo esc_attr($_stcl);?>"><?php echo esc_html($_stype);?></span><?php endif;?>
<p class="sf-rel-name"><?php echo esc_html($_snam);?></p>
<?php if($_scity):?><p class="sf-rel-loc"><?php echo esc_html($_scity);?></p><?php endif;?>
<?php if($_sfee):?><p class="sf-rel-fee">月額 <?php echo esc_html(number_format((float)$_sfee));?>円~</p><?php endif;?>
<span class="sf-rel-more-link">詳細を見る →</span>
</div>
</a>
<?php endforeach;?>
</div>
<div class="sf-related-all"><a href="<?php echo esc_url($base.'facilities/');?>" class="sf-related-all-btn">全施設一覧を見る(110件以上)</a></div>
</div>
</section>
<?php endif;?>
<section class="sf-bottom-cta">
<div class="sf-bottom-cta-inner">
<p class="sf-bottom-cta-label">この施設が気になったら</p>
<h2 class="sf-bottom-cta-title"><?php echo esc_html($title);?>について<br>無料で相談する</h2>
<p class="sf-bottom-cta-sub">見学予約・費用確認・入居条件など、何でもお気軽にどうぞ。<br>相談は完全無料。平日9:00~18:00対応。</p>
<div class="sf-bottom-cta-btns">
<a href="<?php echo esc_url($base.'contact/?facility='.urlencode($title));?>" class="sf-bottom-cta-main">無料で相談する(Web)</a>
<a href="tel:09014807174" class="sf-bottom-cta-tel">090-1480-7174</a>
</div>
<p class="sf-bottom-cta-note">相談無料 / 見学同行あり / 当日対応可</p>
</div>
</section>
<?php
tf_portal_footer();
}
/* ============================================================
15A. 施設一覧インラインレンダリング(横幅80%・デザイン統一)
============================================================ */
function tf_render_facility_archive() {
global $wp_query;
$base = home_url( '/' . TF_BASE . '/' );
$paged = max( 1, get_query_var('paged') );
$per_page = 12;
// タクソノミーフィルター取得
$area_term = get_queried_object();
$is_tax = is_tax();
// 絞り込みクエリ
$tf_q = isset($_GET['tf_q']) ? sanitize_text_field($_GET['tf_q']) : '';
$tf_sort = isset($_GET['tf_sort']) ? sanitize_key($_GET['tf_sort']) : '';
// ソート設定(価格ソートは posts_clauses で要相談=0を末尾に)
$sort_cfg = ['meta_key'=>'tf_order','orderby'=>'meta_value_num','order'=>'ASC'];
$fee_sort_fn = null;
if ($tf_sort === 'price_asc' || $tf_sort === 'price_desc') {
$sort_cfg = [];
$dir = $tf_sort === 'price_asc' ? 'ASC' : 'DESC';
$fee_sort_fn = function($clauses) use ($dir) {
global $wpdb;
$clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS pm_fee_sort ON (pm_fee_sort.post_id = {$wpdb->posts}.ID AND pm_fee_sort.meta_key = 'tf_monthly_min')";
$clauses['orderby'] = "CASE WHEN COALESCE(NULLIF(pm_fee_sort.meta_value,''),0) = 0 THEN 1 ELSE 0 END ASC, CAST(pm_fee_sort.meta_value AS UNSIGNED) {$dir}";
return $clauses;
};
add_filter('posts_clauses', $fee_sort_fn);
}
if ($tf_sort === 'name') $sort_cfg = ['orderby'=>'title','order'=>'ASC'];
$args = array_merge([
'post_type' => 'facility',
'post_status' => 'publish',
'posts_per_page' => $per_page,
'paged' => $paged,
], $sort_cfg);
if ($tf_q) $args['s'] = $tf_q;
// エリア・条件フィルター
$tf_area = isset($_GET['tf_area']) ? sanitize_text_field($_GET['tf_area']) : '';
$tf_type = isset($_GET['tf_type']) ? sanitize_text_field($_GET['tf_type']) : '';
$tf_cond = isset($_GET['tf_cond']) ? sanitize_text_field($_GET['tf_cond']) : '';
if ( $is_tax && $area_term && $area_term->taxonomy === 'facility_condition' ) { $tf_cond = $area_term->slug; }
$tf_fee = isset($_GET['tf_fee']) ? (int)$_GET['tf_fee'] : 0;
$tf_q = isset($_GET['tf_q']) ? sanitize_text_field($_GET['tf_q']) : '';
$tf_sort = isset($_GET['tf_sort']) ? sanitize_text_field($_GET['tf_sort']) : '';
$meta_query = [];
if ( $tf_area ) $meta_query[] = ['key'=>'tf_area','value'=>$tf_area,'compare'=>'='];
if ( $tf_type ) $meta_query[] = ['key'=>'tf_type','value'=>$tf_type,'compare'=>'LIKE'];
if ( $tf_cond ) $meta_query[] = ['key'=>'tf_cond_'.$tf_cond,'value'=>'1','compare'=>'='];
if ( $tf_fee ) $meta_query[] = ['key'=>'tf_monthly_min','value'=>$tf_fee,'compare'=>'<=','type'=>'NUMERIC'];
if ( $meta_query ) { $args['meta_query'] = $meta_query; }
// is_tax の場合はタームでフィルター
if ( $is_tax && $area_term && $area_term->taxonomy !== 'facility_condition' ) {
$args['tax_query'] = [[
'taxonomy' => get_queried_object()->taxonomy,
'field' => 'term_id',
'terms' => $area_term->term_id,
]];
}
$q = new WP_Query($args);
if ($fee_sort_fn) remove_filter('posts_clauses', $fee_sort_fn);
$total = $q->found_posts;
$page_title = $is_tax && $area_term ? esc_html($area_term->name) . 'の施設一覧' : '施設一覧';
tf_portal_header(
$page_title,
'日立市・ひたちなか市・東海村・水戸市の老人ホーム・サービス付き高齢者向け住宅・特養を掲載。無料相談でお気軽にどうぞ。'
);
?>
<style>
/* ===== 施設一覧ページ専用 幅・レイアウト ===== */
.fac-archive-wrap{
max-width:1040px;
width:82%;
margin:0 auto;
padding:40px 0 80px;
}
@media(max-width:960px){ .fac-archive-wrap{width:94%;padding:24px 0 60px} }
/* フィルターバー */
.fac-filter{
background:#f6faf8;
border:1px solid #d8ede8;
border-radius:10px;
padding:20px 24px;
margin-bottom:32px;
display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;
}
.fac-filter label{font-size:.82rem;font-weight:700;color:#333;display:block;margin-bottom:4px}
.fac-filter select,.fac-filter input[type=number]{
height:38px;border:1px solid #c8ddd9;border-radius:6px;padding:0 10px;
font-size:.88rem;background:#fff;color:#333;
min-width:150px;
}
.fac-filter .btn-filter{
height:38px;background:var(--p);color:#fff;border:none;border-radius:6px;
padding:0 20px;font-size:.9rem;font-weight:700;cursor:pointer;white-space:nowrap;
}
.fac-filter .btn-filter:hover{background:var(--pd)}
.fac-filter .btn-clear{
height:38px;background:transparent;color:#888;border:1px solid #ccc;border-radius:6px;
padding:0 16px;font-size:.85rem;cursor:pointer;text-decoration:none;display:flex;align-items:center;
}
/* ヘッダー行 */
.fac-list-header{
display:flex;justify-content:space-between;align-items:center;
margin-bottom:20px;flex-wrap:wrap;gap:8px;
}
.fac-list-count{font-size:.9rem;color:#666}
.fac-list-count strong{color:var(--p);font-size:1.1rem}
/* グリッド */
.fac-list-grid{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
gap:24px;
margin-bottom:40px;
}
/* 施設カード追加スタイル */
.fac-card{
border-radius:12px;overflow:hidden;
border:1.5px solid #e0ede9;background:#fff;
text-decoration:none;color:inherit;
display:flex;flex-direction:column;
transition:transform .22s cubic-bezier(.23,1,.32,1),box-shadow .22s,border-color .22s;
position:relative;
}
.fac-card:hover{
transform:translateY(-6px);
box-shadow:0 16px 40px rgba(35,118,101,.18);
border-color:var(--p);
}
.fac-card::after{
content:'';position:absolute;left:0;top:0;bottom:0;width:4px;
background:var(--p);border-radius:12px 0 0 12px;
opacity:0;transition:opacity .22s;
}
.fac-card:hover::after{opacity:1}
.fac-img img,.fac-img>img{width:100%;height:180px;object-fit:cover;display:block}
.fac-body{padding:16px 18px;display:flex;flex-direction:column;flex:1}
.fac-type{
display:inline-block;font-size:.68rem;font-weight:700;
padding:3px 10px;border-radius:4px;margin-bottom:8px;
letter-spacing:.02em;
}
.fac-type-kaigo{background:#e8f5f2;color:#165447}
.fac-type-group{background:#fff0e8;color:#7a3a10}
.fac-type-tokuyou{background:#eae8f5;color:#3a2a7a}
.fac-type-sakoujuu{background:#e8f1fc;color:#1a4080}
.fac-type-juutaku{background:#fdf5e8;color:#7a5a10}
.fac-name{font-size:1rem;font-weight:700;color:#1a2a24;margin:0 0 4px;line-height:1.35}
.fac-loc{font-size:.8rem;color:#777;margin:0 0 5px}
.fac-fee{font-size:.88rem;color:var(--p);font-weight:700;margin:0 0 8px}
.fac-comment{font-size:.78rem;color:#555;line-height:1.5;margin:6px 0 0;padding-top:6px;border-top:1px solid #f0f0f0}
.badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.badge{font-size:.67rem;background:#f0f8f5;color:#1F5749;padding:3px 8px;border-radius:10px;white-space:nowrap}
.fac-cta{
display:block;text-align:center;
background:var(--p);color:#fff;font-size:.8rem;font-weight:700;
padding:9px 0;margin:12px -18px -16px;
letter-spacing:.04em;
transition:background .15s;
}
.fac-card:hover .fac-cta{background:var(--pd)}
/* 空の状態 */
.fac-empty{
text-align:center;padding:80px 24px;
background:#f9f9f9;border-radius:10px;grid-column:1/-1;
}
.fac-empty p{color:#888;margin-bottom:16px}
/* テキスト検索・ソート */
.fac-filter input[type=text]{
height:38px;border:1px solid #c8ddd9;border-radius:6px;padding:0 10px;
font-size:.88rem;background:#fff;color:#333;min-width:200px;
}
.fac-filter-search{flex:1;min-width:200px}
.fac-sort-wrap{display:flex;align-items:flex-end;gap:8px;margin-left:auto}
/* ローディングオーバーレイ */
.fac-loading-overlay{
display:none;position:fixed;inset:0;background:rgba(255,255,255,.72);
z-index:9999;align-items:center;justify-content:center;flex-direction:column;gap:14px;
}
.fac-loading-overlay.active{display:flex}
.fac-spinner{
width:44px;height:44px;border:4px solid #d8ede8;border-top-color:var(--p);
border-radius:50%;animation:tfSpin .7s linear infinite;
}
@keyframes tfSpin{to{transform:rotate(360deg)}}
.fac-loading-overlay p{font-size:.88rem;color:var(--p);font-weight:700}
/* Back-to-top ボタン */
#tf-backtop{
position:fixed;bottom:24px;right:24px;width:44px;height:44px;
background:var(--p);color:#fff;border:none;border-radius:50%;
font-size:1.2rem;cursor:pointer;box-shadow:0 4px 16px rgba(31,87,73,.3);
display:flex;align-items:center;justify-content:center;
opacity:0;pointer-events:none;
transition:opacity .25s,transform .25s;z-index:999;
}
#tf-backtop.visible{opacity:1;pointer-events:auto}
#tf-backtop:hover{transform:translateY(-3px)}
</style>
<?php tf_breadcrumb([['label'=>$page_title]]); ?>
<div class="fac-archive-wrap">
<div class="fac-list-header">
<h1 style="font-size:clamp(1.4rem,3vw,1.8rem);font-weight:800;color:#1a2a24;margin:0">
<?php echo esc_html($page_title); ?>
</h1>
</div>
<!-- ローディングオーバーレイ -->
<div class="fac-loading-overlay" id="facLoadingOverlay">
<div class="fac-spinner"></div>
<p>施設を検索中…</p>
</div>
<!-- フィルターフォーム -->
<form class="fac-filter" method="get" action="" id="facFilterForm">
<!-- テキスト検索 -->
<div class="fac-filter-search">
<label>施設名・キーワード</label>
<input type="text" name="tf_q" value="<?php echo esc_attr($tf_q); ?>" placeholder="施設名や地名で検索…" autocomplete="off">
</div>
<div>
<label>エリア</label>
<select name="tf_area">
<option value="">すべてのエリア</option>
<option value="hitachi" <?php selected($tf_area,'hitachi'); ?>>日立市</option>
<option value="hitachinaka"<?php selected($tf_area,'hitachinaka'); ?>>ひたちなか市</option>
<option value="tokai" <?php selected($tf_area,'tokai'); ?>>東海村</option>
<option value="mito" <?php selected($tf_area,'mito'); ?>>水戸市</option>
</select>
</div>
<div>
<label>施設種別</label>
<select name="tf_type">
<option value="">すべての種別</option>
<option value="サービス付き高齢者向け住宅" <?php selected($tf_type,'サービス付き高齢者向け住宅'); ?>>サービス付き高齢者向け住宅</option>
<option value="介護付き有料老人ホーム" <?php selected($tf_type,'介護付き有料老人ホーム'); ?>>介護付き有料老人ホーム</option>
<option value="住宅型有料老人ホーム" <?php selected($tf_type,'住宅型有料老人ホーム'); ?>>住宅型有料老人ホーム</option>
<option value="グループホーム" <?php selected($tf_type,'グループホーム'); ?>>グループホーム</option>
<option value="特別養護老人ホーム" <?php selected($tf_type,'特別養護老人ホーム'); ?>>特別養護老人ホーム(特養)</option>
<option value="ケアハウス" <?php selected($tf_type,'ケアハウス'); ?>>ケアハウス</option>
</select>
</div>
<div>
<label>特別な条件</label>
<select name="tf_cond">
<option value="">条件で絞り込む</option>
<option value="ninchisho" <?php selected($tf_cond,'ninchisho'); ?>>認知症対応</option>
<option value="mitatori" <?php selected($tf_cond,'mitatori'); ?>>看取り対応</option><option value="seikatsuhogo">生活保護対応可</option>
<option value="fufu" <?php selected($tf_cond,'fufu'); ?>>夫婦入居可</option>
<option value="seikatsuhogo"<?php selected($tf_cond,'seikatsuhogo'); ?>>生活保護対応</option>
<option value="iryo" <?php selected($tf_cond,'iryo'); ?>>医療対応</option>
<option value="mimoto" <?php selected($tf_cond,'mimoto'); ?>>身元保証なし相談可</option>
</select>
</div>
<div>
<label>月額上限(円)</label>
<input type="number" name="tf_fee" value="<?php echo esc_attr($tf_fee ?: ''); ?>" placeholder="例:120000" step="10000" min="0">
</div>
<!-- ソート -->
<div>
<label>並び順</label>
<select name="tf_sort">
<option value="" <?php selected($tf_sort,''); ?>>おすすめ順</option>
<option value="price_asc" <?php selected($tf_sort,'price_asc'); ?>>月額が低い順</option>
<option value="price_desc"<?php selected($tf_sort,'price_desc'); ?>>月額が高い順</option>
<option value="name" <?php selected($tf_sort,'name'); ?>>施設名順(あいうえお)</option>
</select>
</div>
<button type="submit" class="btn-filter">絞り込む</button>
<?php if ($tf_area || $tf_type || $tf_cond || $tf_fee || $tf_q || $tf_sort): ?>
<a href="<?php echo esc_url($base.'facilities/'); ?>" class="btn-clear">✕ クリア</a>
<?php endif; ?>
</form>
<!-- 件数表示 -->
<div class="fac-list-header">
<p class="fac-list-count">
<strong><?php echo $total; ?></strong> 件の施設が見つかりました
<?php if ($paged > 1): ?>(<?php echo $paged; ?>ページ目)<?php endif; ?>
</p>
<a href="<?php echo esc_url($base.'contact/'); ?>" class="btn btn-p" style="font-size:.85rem;padding:8px 18px">
施設について無料で相談する
</a>
</div>
<!-- 施設グリッド -->
<div class="fac-list-grid">
<?php if ( $q->have_posts() ): ?>
<?php while ( $q->have_posts() ): $q->the_post(); ?>
<?php
$post_id = get_the_ID();
$type = get_post_meta($post_id,'tf_type',true);
$city = get_post_meta($post_id,'tf_city',true);
$pref = get_post_meta($post_id,'tf_prefecture',true) ?: '茨城県';
$fee_min = get_post_meta($post_id,'tf_monthly_min',true);
$fee_max = get_post_meta($post_id,'tf_monthly_max',true);
$comment = get_post_meta($post_id,'tf_comment',true);
$img = get_the_post_thumbnail($post_id,'medium',['class'=>'']);
$badges = tf_condition_badges($post_id);
?>
<?php $type_cls = tf_type_css_class($type); ?>
<div class="fac-card-wrap">
<a href="<?php echo esc_url(get_permalink()); ?>" class="fac-card">
<div class="fac-img">
<?php if ($img): echo $img;
else: $tf_purl = tf_get_facility_photo_url( get_the_title( $post_id ) ); ?>
<img src="<?php echo $tf_purl ?: 'data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22600%22 height=%22360%22%3E%3Crect width=%22100%25%22 height=%22100%25%22 fill=%22%23e8f0ec%22/%3E%3Ctext x=%2250%25%22 y=%2250%25%22 text-anchor=%22middle%22 dominant-baseline=%22middle%22 fill=%22%2399b5a5%22 font-size=%2232%22%3E%3C/text%3E%3C/svg%3E'; ?>"
alt="<?php echo esc_attr(get_the_title()); ?>" style="width:100%;height:180px;object-fit:cover" loading="lazy">
<?php endif; ?>
</div>
<div class="fac-body">
<?php if ($type): ?><span class="fac-type <?php echo esc_attr($type_cls); ?>"><?php echo esc_html($type); ?></span><?php endif; ?>
<p class="fac-name"><?php the_title(); ?></p>
<p class="fac-loc"><?php echo esc_html($pref.' '.$city); ?></p>
<p class="fac-fee"><?php echo tf_format_fee($fee_min,$fee_max); ?></p>
<?php if ($badges): ?><div class="badges"><?php echo $badges; ?></div><?php endif; ?>
<?php if ($comment): ?><p class="fac-comment"><?php echo esc_html($comment); ?></p><?php endif; ?>
<span class="fac-cta">詳細を見る →</span>
</div>
</a>
<button class="tf-cmp-btn"
data-id="<?php echo $post_id; ?>"
data-name="<?php echo esc_attr(get_the_title($post_id)); ?>"
data-fee="<?php echo esc_attr(tf_format_fee($fee_min,$fee_max, false)); ?>"
data-type="<?php echo esc_attr($type); ?>"
data-url="<?php echo esc_attr(get_permalink($post_id)); ?>"
data-loc="<?php echo esc_attr($pref.$city); ?>"
data-addr="<?php echo esc_attr(get_post_meta($post_id,'tf_address',true)); ?>"
onclick="tfCmpToggle(this,event)">+ 比較</button>
</div>
<?php endwhile; wp_reset_postdata(); ?>
<?php else: ?>
<div class="fac-empty">
<p>条件に合う施設が見つかりませんでした。<br>条件を変えて再検索するか、お電話でご相談ください。</p>
<a href="<?php echo esc_url($base.'contact/'); ?>" class="btn btn-p">無料で相談する</a>
</div>
<?php endif; ?>
</div>
<?php
// ページネーション
$big = 999999;
$links = paginate_links([
'base' => str_replace($big,'%#%',esc_url(get_pagenum_link($big))),
'format' => '?paged=%#%',
'current' => $paged,
'total' => $q->max_num_pages,
'type' => 'array',
'prev_text'=>'‹',
'next_text'=>'›',
]);
if ($links) {
echo '<div class="pag">';
foreach ($links as $link) echo str_replace('page-numbers current','cur',$link);
echo '</div>';
}
?>
<!-- 相談CTA -->
<div style="margin-top:48px;background:linear-gradient(135deg,var(--pd),var(--p));border-radius:12px;padding:36px 32px;text-align:center;color:#fff">
<h2 style="font-size:1.4rem;font-weight:800;margin:0 0 12px">どの施設が合うか迷っていませんか?</h2>
<p style="opacity:.9;margin:0 0 24px;line-height:1.7">
施設選びは「条件が合う」だけでは難しい。現状・ご予算・ご家族の事情をお聞きして<br>
専門家が一緒に絞り込みます。相談・見学同行・手続き支援すべて無料。
</p>
<a href="<?php echo esc_url($base.'contact/'); ?>" class="btn btn-p btn-lg" style="background:var(--a)">
今の状況を無料で相談する
</a>
</div>
</div>
<!-- トップへ戻るボタン -->
<button id="tf-backtop" title="ページ上部に戻る" aria-label="ページ上部に戻る">▲</button>
<script>
(function(){
// フィルターフォーム送信時にローディングを表示
var form = document.getElementById('facFilterForm');
var overlay = document.getElementById('facLoadingOverlay');
if (form && overlay) {
form.addEventListener('submit', function(){
overlay.classList.add('active');
});
}
// トップへ戻るボタン
var btn = document.getElementById('tf-backtop');
if (btn) {
window.addEventListener('scroll', function(){
btn.classList.toggle('visible', window.scrollY > 400);
}, {passive:true});
btn.addEventListener('click', function(){
window.scrollTo({top:0,behavior:'smooth'});
});
}
})();
</script>
<!-- ===== æ½è¨æ¯è¼ããã¯ã¼ ===== -->
<div id="tf-cmp-overlay" onclick="tfCmpDrawerClose()"></div>
<div id="tf-cmp-drawer">
<div id="tf-cmp-drawer-hd">
<span>æ½è¨ãæ¯è¼ãã</span>
<button id="tf-cmp-drawer-close" onclick="tfCmpDrawerClose()">â</button>
</div>
<div id="tf-cmp-drawer-body"></div>
<div id="tf-cmp-drawer-ft">
<a id="tf-cmp-go-btn" href="#" onclick="tfCmpGo(event)">æ¯è¼ãã¼ã¸ã§è¦ã â</a>
</div>
</div>
<button id="tf-cmp-fab" onclick="tfCmpDrawerOpen()">
<span>æ½è¨ãæ¯è¼</span>
<span id="tf-cmp-fab-count">0</span>
</button>
<script>
(function(){
var MAX=3;
var KEY='tf_cmp_ids';
var BASE='<?php echo esc_js(home_url('/'.TF_BASE.'/compare/')); ?>';
function load(){
try{return JSON.parse(sessionStorage.getItem(KEY)||'[]');}catch(e){return[];}
}
function save(arr){sessionStorage.setItem(KEY,JSON.stringify(arr));}
function render(){
var arr=load();
var body=document.getElementById('tf-cmp-drawer-body');
var fab=document.getElementById('tf-cmp-fab');
var cnt=document.getElementById('tf-cmp-fab-count');
var goBtn=document.getElementById('tf-cmp-go-btn');
if(!body)return;
body.innerHTML='';
// 鏿æ¸ã¿ã¢ã¤ãã
arr.forEach(function(it){
var d=document.createElement('div');
d.className='tf-cmp-item';
d.innerHTML='<button class="tf-cmp-item-rm" onclick="tfCmpRemove('+it.id+',event)" title="åé¤">â</button>'
+'<div class="tf-cmp-item-name">'+esc(it.name)+'</div>'
+(it.type?'<div class="tf-cmp-item-type">'+esc(it.type)+'</div>':'')
+'<div class="tf-cmp-item-fee">'+esc(it.fee)+'</div>';
body.appendChild(d);
});
// ãã¬ã¼ã¹ãã«ãã¼
for(var i=arr.length;i<MAX;i++){
var p=document.createElement('div');
p.className='tf-cmp-placeholder';
p.textContent='æ½è¨ã鏿 ('+(i+1)+'/'+MAX+')';
body.appendChild(p);
}
// FAB
if(fab){fab.style.display=arr.length>0?'flex':'none';}
if(cnt){cnt.textContent=arr.length;}
// æ¯è¼ãã¿ã³
if(goBtn){
if(arr.length>=2){
goBtn.removeAttribute('disabled');
goBtn.style.pointerEvents='';goBtn.style.opacity='';
} else {
goBtn.setAttribute('disabled','');
goBtn.style.pointerEvents='none';goBtn.style.opacity='.5';
}
}
// ã«ã¼ããã¿ã³åæ
document.querySelectorAll('.tf-cmp-btn').forEach(function(b){
var id=parseInt(b.getAttribute('data-id'));
var inList=arr.some(function(x){return x.id===id;});
b.classList.toggle('active',inList);
b.disabled=(!inList && arr.length>=MAX);
});
}
function esc(s){var d=document.createElement('div');d.textContent=s;return d.innerHTML;}
window.tfCmpToggle=function(btn,e){
if(e)e.stopPropagation();
var id=parseInt(btn.getAttribute('data-id'));
var arr=load();
var idx=arr.findIndex(function(x){return x.id===id;});
if(idx>=0){arr.splice(idx,1);}
else if(arr.length<MAX){
arr.push({
id:id,
name:btn.getAttribute('data-name'),
fee:btn.getAttribute('data-fee'),
type:btn.getAttribute('data-type'),
url:btn.getAttribute('data-url'),
loc:btn.getAttribute('data-loc'),
addr:btn.getAttribute('data-addr')
});
tfCmpDrawerOpen();
}
save(arr);render();
};
window.tfCmpRemove=function(id,e){
if(e)e.stopPropagation();
var arr=load().filter(function(x){return x.id!==id;});
save(arr);render();
};
window.tfCmpDrawerOpen=function(){
var d=document.getElementById('tf-cmp-drawer');
var o=document.getElementById('tf-cmp-overlay');
if(d)d.classList.add('open');
if(o)o.classList.add('visible');
};
window.tfCmpDrawerClose=function(){
var d=document.getElementById('tf-cmp-drawer');
var o=document.getElementById('tf-cmp-overlay');
if(d)d.classList.remove('open');
if(o)o.classList.remove('visible');
};
window.tfCmpGo=function(e){
e.preventDefault();
var ids=load().map(function(x){return x.id;}).join(',');
if(ids)window.location.href=BASE+'?ids='+encodeURIComponent(ids);
};
render();
})();
</script>
<?php
tf_portal_footer();
}
/* ============================================================
15B. ポータルホームページ — インラインレンダリング(アニメーション付き)
============================================================ */
function tf_render_home_page() {
$base = home_url( '/' . TF_BASE . '/' );
$fac_count = wp_count_posts('facility')->publish ?: 94;
tf_portal_header(
'',
'あなたのまちの"安心できる暮らし"を見つけよう。日立市・ひたちなか市・東海村・水戸市の老人ホーム・サービス付き高齢者向け住宅の無料相談なら「つなぐ、ふくし。」'
);
?>
<style>
/* ===== ホームページ専用スタイル ===== */
/* アニメーション定義 */
@keyframes tfFadeUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@keyframes tfFadeIn{from{opacity:0}to{opacity:1}}
@keyframes tfClockFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-14px) rotate(3deg)}}
@keyframes tfClockMelt{0%,100%{d:path("M50,50 m-30,0 a30,30 0 1,0 60,0 a30,30 0 1,0 -60,0")}50%{d:path("M50,50 m-30,3 a30,27 0 1,0 60,-6 a30,33 0 1,0 -60,6")}}
@keyframes tfTextShimmer{0%{background-position:200% center}100%{background-position:-200% center}}
@keyframes tfPulse{0%,100%{box-shadow:0 0 0 0 rgba(220,112,53,.4)}50%{box-shadow:0 0 0 12px rgba(220,112,53,0)}}
@keyframes tfFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes tfWave{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes tfCountUp{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@keyframes tfSlideIn{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}
/* JS Intersection Observer用クラス */
.tf-anim{opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}
.tf-anim.visible{opacity:1;transform:none}
.tf-anim-left{opacity:0;transform:translateX(-28px);transition:opacity .6s ease,transform .6s ease}
.tf-anim-left.visible{opacity:1;transform:none}
.tf-anim-scale{opacity:0;transform:scale(.92);transition:opacity .5s ease,transform .5s ease}
.tf-anim-scale.visible{opacity:1;transform:none}
/* ======== HERO ======== */
.tf-hero{
position:relative;
min-height:640px;
display:flex;align-items:center;
overflow:hidden;
background: url('https://goodbyinc.com/wp-content/uploads/2025/12/5047f2b7ac5cf591d3c8cbe9845c13e5-pdf.jpg') center/cover no-repeat;
background-size: cover;
background-position: center top;
}
/* 紙テクスチャ */
.tf-hero::before{
content:'';
position:absolute;inset:0;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.12'/%3E%3C/svg%3E");
opacity:.4;
mix-blend-mode:overlay;
pointer-events:none;
z-index:1;
}
/* 下部アクセント波 */
.tf-hero::after{
content:'';
position:absolute;bottom:0;left:0;right:0;height:60px;
background:linear-gradient(to bottom,transparent,rgba(26,46,32,.15));
pointer-events:none;z-index:1;
}
.tf-hero-inner{
position:relative;z-index:2;
width:100%;max-width:860px;
margin:0 auto;
padding:80px 24px 96px;
text-align:center;
color:#f2ede0!important;
}
/* 小見出し帯 */
.tf-hero-eyebrow{
display:inline-flex;align-items:center;gap:10px;
font-size:.7rem;font-weight:700;letter-spacing:.2em;
color:rgba(242,237,224,.75)!important;
margin-bottom:20px;
animation:tfFadeUp .5s .1s both;
}
.tf-hero-eyebrow::before,.tf-hero-eyebrow::after{
content:'';height:1px;width:28px;display:inline-block;
background:rgba(242,237,224,.4);
}
/* タグライン */
.tf-hero-tagline{
font-size:clamp(.88rem,1.8vw,1rem);
color:rgba(242,237,224,.88)!important;
margin:0 0 14px;
letter-spacing:.06em;
animation:tfFadeUp .5s .15s both;
}
/* H1 */
.tf-hero-h1{
font-size:clamp(3rem,7.5vw,5.2rem);
font-weight:900;
line-height:1.1;
margin:0 0 20px;
letter-spacing:.05em;
color:#f7f0e2!important;
text-shadow:0 2px 24px rgba(0,0,0,.18);
animation:tfFadeUp .5s .2s both;
}
/* サブコピー */
.tf-hero-sub{
font-size:clamp(.88rem,1.7vw,1rem);
color:rgba(242,237,224,.82)!important;
line-height:1.85;
margin:0 auto 30px;
max-width:520px;
animation:tfFadeUp .5s .25s both;
}
/* KPI */
.tf-hero-kpi{
display:flex;justify-content:center;
gap:0;
margin:0 auto 30px;
max-width:600px;
border:1px solid rgba(242,237,224,.22);
border-radius:8px;overflow:hidden;
background:rgba(0,0,0,.14);
backdrop-filter:blur(4px);
animation:tfFadeUp .5s .3s both;
}
.tf-hero-kpi-item{
flex:1;padding:14px 6px;text-align:center;
border-right:1px solid rgba(242,237,224,.18);
}
.tf-hero-kpi-item:last-child{border-right:none}
.tf-hero-kpi-num{
display:block;font-size:1.35rem;font-weight:800;
color:#f7f0e2!important;line-height:1.1;
}
.tf-hero-kpi-lbl{
font-size:.62rem;color:rgba(242,237,224,.68);letter-spacing:.06em;
}
/* ボタン */
.tf-hero-btns{
display:flex;flex-wrap:wrap;gap:12px;
justify-content:center;
animation:tfFadeUp .5s .35s both;
}
.tf-hero-btn-main{
display:inline-flex;align-items:center;gap:8px;
background:#f7f0e2;color:#1a2e20;
font-size:.95rem;font-weight:800;
padding:14px 30px;border-radius:6px;
text-decoration:none;
transition:transform .18s,box-shadow .18s;
box-shadow:0 4px 18px rgba(0,0,0,.22);
letter-spacing:.04em;
}
.tf-hero-btn-main:hover{transform:translateY(-2px);box-shadow:0 8px 26px rgba(0,0,0,.3);color:#1a2e20}
.tf-hero-btn-sub{
display:inline-flex;align-items:center;gap:8px;
background:rgba(0,0,0,0.35);color:#f7f0e2;
font-size:.9rem;font-weight:600;
padding:14px 26px;border-radius:6px;
text-decoration:none;
border:1.5px solid rgba(247,240,226,.45);
transition:background .18s,border-color .18s;
letter-spacing:.03em;
}
.tf-hero-btn-sub:hover{background:rgba(247,240,226,.12);border-color:rgba(247,240,226,.85);color:#f7f0e2}
/* スクロール */
.tf-hero-scroll{display:none}
@keyframes tfFadeUp{
from{opacity:0;transform:translateY(18px)}
to{opacity:1;transform:translateY(0)}
}
@media(max-width:640px){
.tf-hero{min-height:auto}
.tf-hero-inner{padding:60px 20px 76px}
.tf-hero-kpi{flex-wrap:wrap}
.tf-hero-kpi-item{flex:1 0 45%;border-bottom:1px solid rgba(242,237,224,.14)}
.tf-hero-btn-main,.tf-hero-btn-sub{width:100%;justify-content:center}
/* ===== LP (悩み) セクション ===== */
.tf-lp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px}
.tf-lp-card{display:flex;align-items:flex-start;gap:16px;padding:24px;background:#fff;border-radius:12px;border:1.5px solid #e8f0ec;text-decoration:none;color:#1a3a2a;box-shadow:0 2px 12px rgba(74,120,104,.08);transition:transform .2s,box-shadow .2s}
.tf-lp-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(74,120,104,.15);border-color:#4a7868}
.tf-lp-icon{font-size:2rem;flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f4ef,#d4ece2);border-radius:12px}
.tf-lp-body{flex:1}
.tf-lp-label{font-size:.72rem;font-weight:700;color:#4a7868;background:#e8f4ef;display:inline-block;padding:2px 10px;border-radius:20px;margin-bottom:6px}
.tf-lp-title{font-size:1rem;font-weight:700;color:#1a3a2a;margin:0 0 6px;line-height:1.4}
.tf-lp-desc{font-size:.82rem;color:#5a7a6a;margin:0;line-height:1.5}
@media(max-width:768px){.tf-lp-grid{grid-template-columns:1fr}}
/* ===== 施設カードグリッド ===== */
.tf-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.tf-card{display:flex;flex-direction:column;background:#fff;border-radius:12px;overflow:hidden;border:1.5px solid #e8f0ec;text-decoration:none;color:#1a3a2a;box-shadow:0 2px 12px rgba(74,120,104,.08);transition:transform .2s,box-shadow .2s}
.tf-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px rgba(74,120,104,.15)}
.tf-card-img{height:160px;background-size:cover;background-position:center;background-color:#e8f4ef;position:relative}
.tf-card-type{position:absolute;top:10px;left:10px;font-size:.7rem;font-weight:700;background:#4a7868;color:#fff;padding:3px 10px;border-radius:20px}
.tf-card-body{padding:16px}
.tf-card-title{font-size:.95rem;font-weight:700;margin:0 0 6px;line-height:1.4}
.tf-card-city{font-size:.8rem;color:#5a7a6a;margin:0 0 4px}
.tf-card-fee{font-size:.82rem;color:#4a7868;font-weight:600;margin:0}
.tf-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.tf-filter-btn{display:inline-block;padding:6px 18px;border-radius:20px;border:1.5px solid #c8ddd4;color:#4a7868;font-size:.85rem;text-decoration:none;font-weight:600;transition:all .2s}
.tf-filter-btn:hover,.tf-filter-btn.active{background:#4a7868;color:#fff;border-color:#4a7868}
.tf-btn-wrap{text-align:center;margin-top:36px}
@media(max-width:768px){.tf-cards-grid{grid-template-columns:1fr}}
/* ===== お問い合わせセクション ===== */
.tf-contact-wrap{max-width:600px;margin:0 auto;text-align:center}
.tf-contact-info{background:#fff;border-radius:16px;padding:40px;box-shadow:0 4px 20px rgba(74,120,104,.1)}
</style>
<?php
/* ãã¼ãã¼ */
?>
<section class="tf-hero">
<div class="tf-hero-inner">
<p class="tf-hero-eyebrow">日立・ひたちなか・東海・水戸 対応エリア</p>
<p class="tf-hero-tagline">あなたのまちの“安心できる暮らし”を見つけよう。</p>
<h1 class="tf-hero-h1">つなぐ、ふくし。</h1>
<p class="tf-hero-sub">
茨城県北エリアの介護施設探しを、無料で全力サポート。<br>
<?php $_hfc=wp_count_posts('facility'); echo esc_html($_hfc->publish??110); ?>件の施設情報から、あなたに合う場所を一緒に探します。
</p>
<div class="tf-hero-kpi">
<div class="tf-hero-kpi-item">
<span class="tf-hero-kpi-num"><?php $_hfc2=wp_count_posts('facility'); echo esc_html(($_hfc2->publish??110).'件'); ?></span>
<span class="tf-hero-kpi-lbl">施設掲載数</span>
</div>
<div class="tf-hero-kpi-item">
<span class="tf-hero-kpi-num">茨城県</span>
<span class="tf-hero-kpi-lbl">対応エリア</span>
</div>
<div class="tf-hero-kpi-item">
<span class="tf-hero-kpi-num">無料</span>
<span class="tf-hero-kpi-lbl">相談・見学同行</span>
</div>
<div class="tf-hero-kpi-item">
<span class="tf-hero-kpi-num">お急ぎの</span>
<span class="tf-hero-kpi-lbl">ケースも対応</span>
</div>
</div>
<div class="tf-hero-btns">
<a href="<?php echo esc_url($base.'contact/'); ?>" class="tf-hero-btn-main">無料で相談する</a>
<a href="<?php echo esc_url($base.'facilities/'); ?>" class="tf-hero-btn-sub">施設一覧を見る</a>
</div>
</div>
</section>
<script>
(function(){
var c=document.getElementById('tf-hero-canvas');
if(!c)return;
var ctx=c.getContext('2d'),W,H,dots=[];
function resize(){
var r=c.parentElement.getBoundingClientRect();
W=c.width=r.width;H=c.height=r.height;
}
resize();window.addEventListener('resize',resize);
var N=window.innerWidth<600?22:55;
for(var i=0;i<N;i++){
dots.push({
x:Math.random()*1400,y:Math.random()*700,
vx:(Math.random()-.5)*.3,vy:(Math.random()-.5)*.3,
r:Math.random()*1.5+.5
});
}
function draw(){
ctx.clearRect(0,0,W,H);
for(var i=0;i<N;i++){
var a=dots[i];
a.x+=a.vx;a.y+=a.vy;
if(a.x<0)a.x=W;if(a.x>W)a.x=0;
if(a.y<0)a.y=H;if(a.y>H)a.y=0;
ctx.beginPath();
ctx.arc(a.x,a.y,a.r,0,Math.PI*2);
ctx.fillStyle='rgba(76,217,176,.45)';
ctx.fill();
for(var j=i+1;j<N;j++){
var b=dots[j],dx=a.x-b.x,dy=a.y-b.y,d=Math.sqrt(dx*dx+dy*dy);
if(d<120){
ctx.beginPath();
ctx.moveTo(a.x,a.y);ctx.lineTo(b.x,b.y);
ctx.strokeStyle='rgba(76,217,176,'+((.12*(1-d/120))).toFixed(3)+')';
ctx.lineWidth=.6;
ctx.stroke();
}
}
}
requestAnimationFrame(draw);
}
draw();
})();
</script>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<style>
.tf-mapbox{background:linear-gradient(160deg,#0d2a1e 0%,#1a3d2e 60%,#1e4d38 100%);padding:64px 0 56px;position:relative;overflow:hidden}
.tf-mapbox::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none}
.tf-mapbox-inner{max-width:1100px;margin:0 auto;padding:0 24px}
.tf-mapbox-head{text-align:center;margin-bottom:40px}
.tf-mapbox-eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:100px;padding:6px 16px;font-size:.78rem;font-weight:700;color:#7dd4b0;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
.tf-mapbox-title{font-size:clamp(1.6rem,4vw,2.2rem);font-weight:900;color:#fff;margin:0 0 12px;line-height:1.2}
.tf-mapbox-sub{color:rgba(255,255,255,.65);font-size:.95rem;margin:0}
.tf-mapbox-body{display:grid;grid-template-columns:280px 1fr;gap:24px;align-items:stretch}
@media(max-width:768px){.tf-mapbox-body{grid-template-columns:1fr;grid-template-rows:300px auto}.tf-mapbox-map{order:1;height:300px!important}.tf-mapbox-panel{order:2}.tf-mapbox-card{min-height:100px}}
.tf-mapbox-panel{display:flex;flex-direction:column;gap:16px}
.tf-mapbox-stat{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:20px;text-align:center}
.tf-mapbox-stat-num{display:block;font-size:2rem;font-weight:900;color:#7dd4b0;line-height:1}
.tf-mapbox-stat-lbl{display:block;font-size:.75rem;color:rgba(255,255,255,.6);margin-top:4px;letter-spacing:.05em}
.tf-mapbox-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:20px;flex:1;transition:all .3s}
.tf-mapbox-card-hint{color:rgba(255,255,255,.4);font-size:.82rem;text-align:center;padding:24px 0;display:flex;flex-direction:column;align-items:center;gap:8px}
.tf-mapbox-card-hint svg{opacity:.4}
.tf-mapbox-card-name{font-size:1rem;font-weight:800;color:#fff;margin:0 0 6px;line-height:1.3}
.tf-mapbox-card-type{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 10px;border-radius:100px;background:rgba(125,212,176,.2);color:#7dd4b0;margin-bottom:10px}
.tf-mapbox-card-fee{font-size:.88rem;color:rgba(255,255,255,.8);margin-bottom:8px}
.tf-mapbox-card-addr{font-size:.78rem;color:rgba(255,255,255,.5);margin-bottom:14px;line-height:1.5}
.tf-mapbox-card-link{display:block;text-align:center;background:#7dd4b0;color:#0d2a1e;font-weight:800;font-size:.82rem;padding:10px;border-radius:8px;text-decoration:none;transition:background .2s}
.tf-mapbox-card-link:hover{background:#9ae4c4;color:#0d2a1e}
.tf-mapbox-map{border-radius:20px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.4);border:2px solid rgba(255,255,255,.08);height:480px}
@media(max-width:768px){.tf-mapbox-map{height:360px}}
.tf-mapbox-cta{text-align:center;margin-top:32px}
.tf-mapbox-btn{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#1a3d2e;padding:14px 36px;border-radius:100px;font-weight:800;text-decoration:none;font-size:.95rem;transition:all .2s;box-shadow:0 4px 16px rgba(0,0,0,.2)}
<style>
.tf-mbox{background:#f8fafc;padding:0}
.tf-mbox-inner{max-width:1280px;margin:0 auto;padding:48px 24px 56px}
.tf-mbox-head{text-align:center;margin-bottom:28px}
.tf-mbox-eyebrow{font-size:.75rem;font-weight:700;color:#1F5749;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}
.tf-mbox-title{font-size:1.8rem;font-weight:800;color:#1a2a24;margin:0 0 8px}
.tf-mbox-sub{font-size:.9rem;color:#6b7280;margin:0}
.tf-mbox-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:16px}
.tf-mbox-controls input,.tf-mbox-controls select{padding:7px 14px;border:1.5px solid #e5e7eb;border-radius:22px;font-size:.8rem;background:#fff;cursor:pointer;outline:none;color:#374151;transition:border-color .2s}
.tf-mbox-controls input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2.5'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:10px center;background-size:13px;padding-left:32px;width:180px}
.tf-mbox-controls input:focus,.tf-mbox-controls select:hover,.tf-mbox-controls select:focus{border-color:#1F5749}
.tf-mbox-controls select{appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}
.tf-mbox-count{background:#f0fdf4;color:#1F5749;font-size:.78rem;font-weight:700;padding:5px 13px;border-radius:22px;border:1px solid #bbf7d0}
.tf-mbox-body{display:flex;border-radius:16px;overflow:hidden;box-shadow:0 4px 28px rgba(0,0,0,.13);height:580px}
.tf-mbox-sidebar{width:300px;flex-shrink:0;background:#fff;border-right:1px solid #f0f0f0;display:flex;flex-direction:column;overflow:hidden}
.tf-mbox-sidebar-head{padding:10px 14px;border-bottom:1px solid #f0f0f0;font-size:.78rem;font-weight:700;color:#6b7280;background:#fafafa;flex-shrink:0}
.tf-mbox-scroll{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#e5e7eb transparent}
.tf-mbox-scroll::-webkit-scrollbar{width:4px}
.tf-mbox-scroll::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:2px}
.tf-mc{display:flex;cursor:pointer;border-bottom:1px solid #f5f5f5;border-left:3px solid transparent;transition:all .13s}
.tf-mc:hover,.tf-mc.on{border-left-color:#1F5749;background:#f7fdf9}
.tf-mc-img{width:66px;min-width:66px;overflow:hidden}
.tf-mc-img img{width:66px;height:66px;object-fit:cover;display:block}
.tf-mc-ph{width:66px;height:66px;background:linear-gradient(135deg,#d1fae5,#e0f2fe);display:flex;align-items:center;justify-content:center;font-size:1.1rem}
.tf-mc-body{padding:6px 8px;min-width:0}
.tf-mc-name{font-weight:700;font-size:.76rem;color:#1a2a24;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}
.tf-mc-tag{font-size:.61rem;color:#fff;padding:1px 5px;border-radius:7px;display:inline-block;margin-bottom:2px}
.tf-mc-fee{font-size:.7rem;color:#374151;font-weight:600}
.tf-mc-empty{padding:24px;text-align:center;color:#9ca3af;font-size:.8rem}
.tf-mbox-map{flex:1;position:relative}
#tf-hmap{width:100%;height:100%}
.tf-hgps{position:absolute;top:58px;right:10px;z-index:999;background:#fff;border:2px solid rgba(0,0,0,.2);width:32px;height:32px;border-radius:4px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 5px rgba(0,0,0,.22)}
.tf-hgps:hover{background:#f0fdf4;border-color:#1F5749}
.tf-hleg{position:absolute;bottom:18px;right:10px;background:rgba(255,255,255,.97);padding:8px 12px;border-radius:9px;box-shadow:0 2px 10px rgba(0,0,0,.14);font-size:.67rem;z-index:999;line-height:1.9}
.tf-hleg summary{font-weight:700;cursor:pointer;font-size:.69rem;color:#374151;list-style:none}
.hl-r{display:flex;align-items:center;gap:5px;white-space:nowrap}
.hl-d{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.tf-hpop{width:190px}
.tf-hpop img{width:100%;height:85px;object-fit:cover;border-radius:5px;margin-bottom:6px}
.tf-hpop-n{font-weight:700;font-size:.83rem;color:#1F5749;margin-bottom:2px;line-height:1.3}
.tf-hpop-t{font-size:.63rem;color:#fff;padding:1px 6px;border-radius:7px;display:inline-block;margin-bottom:4px}
.tf-hpop-m{font-size:.7rem;color:#555;margin-bottom:2px}
.tf-hpop-f{font-size:.76rem;color:#1F5749;font-weight:700;margin-bottom:6px}
.tf-hpop-btn{display:block;text-align:center;background:#1F5749;color:#fff!important;padding:6px;border-radius:6px;font-size:.76rem;text-decoration:none!important;font-weight:700}
.tf-hpop-btn:hover{background:#154035!important}
@media(max-width:768px){
.tf-mbox-body{flex-direction:column;height:auto}
.tf-mbox-sidebar{width:100%;height:180px;border-right:none;border-bottom:1px solid #f0f0f0}
.tf-mbox-map{height:400px}
.tf-mbox-controls{gap:5px}
.tf-mbox-controls input{width:140px}
}
</style>
<section class="tf-mbox">
<div class="tf-mbox-inner">
<div class="tf-mbox-head">
<p class="tf-mbox-eyebrow">MAP SEARCH</p>
<h2 class="tf-mbox-title">地図から施設を探す</h2>
<p class="tf-mbox-sub">マーカーをクリックして施設詳細をチェック。サイドバーで条件絞り込みもできます。</p>
</div>
<div class="tf-mbox-controls">
<input type="text" id="tf-hq" placeholder="施設名・住所で検索" oninput="tfHF()">
<select id="tf-harea" onchange="tfHF()">
<option value="">すべてのエリア</option>
<option value="hitachi">日立市</option>
<option value="hitachinaka">ひたちなか市</option>
<option value="tokai">東海村</option>
<option value="mito">水戸市</option>
</select>
<select id="tf-htype" onchange="tfHF()">
<option value="">すべての種別</option>
<option value="介護付き">介護付き</option>
<option value="グループホーム">グループホーム</option>
<option value="特別養護">特養</option>
<option value="サービス付き">サ高住</option>
<option value="住宅型">住宅型</option>
<option value="ケアハウス">ケアハウス</option>
</select>
<select id="tf-hcond" onchange="tfHF()">
<option value="">すべての条件</option>
<option value="ninchi">認知症対応あり</option>
<option value="mitatori">看取り対応あり</option>
</select>
<span class="tf-mbox-count" id="tf-hcnt">0件</span>
</div>
<div class="tf-mbox-body">
<div class="tf-mbox-sidebar">
<div class="tf-mbox-sidebar-head" id="tf-hsh">施設リスト</div>
<div class="tf-mbox-scroll" id="tf-hsl"></div>
</div>
<div class="tf-mbox-map">
<div id="tf-hmap"></div>
<button class="tf-hgps" onclick="tfHGps()" title="現在地">📍</button>
<details class="tf-hleg" open>
<summary>凡例</summary>
<div class="hl-r"><span class="hl-d" style="background:#1F5749"></span>介護付き有料老人ホーム</div>
<div class="hl-r"><span class="hl-d" style="background:#2563EB"></span>グループホーム</div>
<div class="hl-r"><span class="hl-d" style="background:#DC2626"></span>特別養護老人ホーム</div>
<div class="hl-r"><span class="hl-d" style="background:#D97706"></span>サービス付き高齢者向け住宅</div>
<div class="hl-r"><span class="hl-d" style="background:#7C3AED"></span>住宅型有料老人ホーム</div>
<div class="hl-r"><span class="hl-d" style="background:#0891B2"></span>ケアハウス</div>
</details>
</div>
</div>
</div>
</section>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css">
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css">
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>
<script>
function tfHMapInit(){
if(!document.getElementById('tf-hmap')||typeof L==='undefined')return;
var C={'介護付き有料老人ホーム':'#1F5749','グループホーム':'#2563EB','グループホーム(認知症対応型)':'#2563EB','特別養護老人ホーム':'#DC2626','サービス付き高齢者向け住宅':'#D97706','住宅型有料老人ホーム':'#7C3AED','ケアハウス':'#0891B2','シェアハウス(住宅型)':'#DB2777'};
var D=[];
<?php
$facs=get_posts(['post_type'=>'facility','posts_per_page'=>-1,'post_status'=>'publish']);
$cm=['ハートワンひたちなか'=>[36.3975,140.5325],'ご長寿くらぶひたちなか佐和'=>[36.3630,140.5215],'ご長寿くらぶ高場'=>[36.3920,140.5295],'ご長寿くらぶ東石川'=>[36.4035,140.5418],'ラ・ナシカひたちなか'=>[36.3858,140.5310],'ニチイケアセンターかつた'=>[36.3948,140.5220],'らいふアシスト・泉ヶ森 本館'=>[36.3902,140.5355],'らいふアシスト・泉ヶ森 ナーシングケアレジデンス'=>[36.3904,140.5357],'ライフアシスト・泉が森'=>[36.3902,140.5355],'ご長寿くらぶ日立大沼'=>[36.5838,140.6460],'ひたちの森シニア館'=>[36.5932,140.6322],'秋桜の家森山'=>[36.5962,140.6488],'豊浦の郷'=>[36.5302,140.6352],'愛の家グループホーム日立'=>[36.5912,140.6520],'ご長寿くらぶひたちなか市外野'=>[36.3698,140.5348],'まごころの家村松'=>[36.5382,140.5782],'ひまわりハウス諏訪'=>[36.6052,140.6348],'常陸東海園'=>[36.4682,140.5635],'ケアハウス東海'=>[36.4678,140.5622],'かみーら'=>[36.8205,140.7702],'ご長寿くらぶ日立本宮'=>[36.5590,140.6280],'ご長寿くらぶ日立滑川'=>[36.5780,140.6680],'ケアレジデンス水戸本館'=>[36.3712,140.4825],'ケアレジデンス水戸新館'=>[36.3715,140.4830],'ケアレジデンス水戸元吉田館'=>[36.3580,140.4870],'やすらぎ梅寿園'=>[36.3820,140.4690],'しまナーシングホーム平須'=>[36.3495,140.4602],'しまナーシングホームガーデン'=>[36.3510,140.4618],'しまホーム平須'=>[36.3492,140.4598],'しまホーム河和田'=>[36.3378,140.4478],'いっしん館内原'=>[36.3432,140.3942],'いっしん館水戸'=>[36.3668,140.4712],'水戸ケアセンターそよ風'=>[36.3750,140.4810],'えみてる水戸見川'=>[36.3600,140.4550],'はしかべ水戸松本町'=>[36.3780,140.4760],'はしかべ水戸河和田町'=>[36.3372,140.4470],'はぴね水戸'=>[36.3810,140.4790],'ここいち水戸城東'=>[36.3760,140.4980],'ツクイ・サンフォレスト水戸'=>[36.3690,140.4470],'ふるさとホーム水戸赤塚'=>[36.3308,140.4202],'サポートハウスいろどり'=>[36.3650,140.4680],'ドルチェ水戸姫子'=>[36.3510,140.4890],'ドルチェ水戸大塚'=>[36.3420,140.4760],'ご長寿くらぶ水戸千波'=>[36.3658,140.4628],'ご長寿くらぶ水戸見川'=>[36.3605,140.4545],'ご長寿くらぶ水戸酒門'=>[36.3782,140.5082],'ご長寿くらぶ水戸河和田'=>[36.3380,140.4480],'ご長寿くらぶ水戸石川'=>[36.3790,140.4970],'ご長寿くらぶ水戸・金町'=>[36.3730,140.4760],'ご長寿くらぶ水戸けやき台'=>[36.3870,140.4720],'まごころの家水戸駅南'=>[36.3628,140.4762],'まごころの家水戸堀町'=>[36.3792,140.5028],'まごころの家赤塚'=>[36.3312,140.4198],'まごころの家水戸若宮'=>[36.3762,140.4652],'まごころの家鮎川'=>[36.3498,140.4238]];
foreach($facs as $f){
$t=$f->post_title;$tp=get_post_meta($f->ID,'tf_type',true)?:'老人ホーム';
$ad=get_post_meta($f->ID,'tf_address',true);$ar=get_post_meta($f->ID,'tf_area',true);
$fm=(int)get_post_meta($f->ID,'tf_monthly_min',true);
$ni=get_post_meta($f->ID,'tf_cond_ninchisho',true);$mi=get_post_meta($f->ID,'tf_cond_mitatori',true);
$ph=get_the_post_thumbnail_url($f->ID,'medium')?:tf_get_facility_photo_url($t);
$la=(float)get_post_meta($f->ID,'tf_lat',true);$ln=(float)get_post_meta($f->ID,'tf_lng',true);
if(!$la||!$ln){if(isset($cm[$t])){$la=$cm[$t][0];$ln=$cm[$t][1];}
elseif($ar==='hitachi'){$la=36.591+((crc32($t)%100)/5000);$ln=140.651+((crc32($t.'x')%100)/5000);}
elseif($ar==='hitachinaka'){$la=36.396+((crc32($t)%100)/5000);$ln=140.533+((crc32($t.'x')%100)/5000);}
elseif($ar==='tokai'){$la=36.468+((crc32($t)%100)/5000);$ln=140.563+((crc32($t.'x')%100)/5000);}
else{$la=36.366+((crc32($t)%100)/5000);$ln=140.471+((crc32($t.'x')%100)/5000);}}
echo 'D.push('.wp_json_encode(['id'=>$f->ID,'title'=>$t,'type'=>$tp,'address'=>$ad,'area'=>$ar,'fee'=>$fm>0?number_format($fm).'円〜':'','ninchi'=>(bool)$ni,'mitatori'=>(bool)$mi,'photo'=>$ph?:'',' url'=>get_permalink($f->ID),'lat'=>round($la,6),'lng'=>round($ln,6)],JSON_UNESCAPED_UNICODE).');';
}
?>
var cur=D.slice(),mkrs={},actId=null;
var map=L.map('tf-hmap',{scrollWheelZoom:false,zoomControl:true}).setView([36.49,140.59],11);
L.tileLayer('https://maps.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', {maxZoom:18, attribution:'<a href="https://maps.gsi.go.jp/development/ichiran.html" target="_blank">国土地理院</a>'}).addTo(map);
var clst=(L.markerClusterGroup?L.markerClusterGroup({showCoverageOnHover:false,maxClusterRadius:45,iconCreateFunction:function(c){return L.divIcon({html:'<div style="background:#1F5749;color:#fff;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.76rem;border:3px solid #fff;box-shadow:0 2px 7px rgba(0,0,0,.22)">'+c.getChildCount()+'</div>',className:'',iconSize:[32,32]});}}):{addLayer:function(m){m.addTo(map);},clearLayers:function(){map.eachLayer(function(l){if(l instanceof L.Marker)map.removeLayer(l);});}});if(clst.addTo)clst.addTo(map);
function mIco(col,big){var s=big?32:26;var sv='<svg xmlns="http://www.w3.org/2000/svg" width="'+s+'" height="'+(s*1.3)+'" viewBox="0 0 30 39"><path d="M15 0C6.72 0 0 6.72 0 15c0 10.5 15 24 15 24S30 25.5 30 15C30 6.72 23.28 0 15 0z" fill="'+col+'" stroke="white" stroke-width="2.5"/><circle cx="15" cy="15" r="5.5" fill="white"/></svg>';return L.divIcon({className:'',html:sv,iconSize:[s,s*1.3],iconAnchor:[s/2,s*1.3],popupAnchor:[0,-(s*1.3)]});}
function pop(f){var col=C[f.type]||'#1F5749';var img=f.photo?'<img src="'+f.photo+'" loading="lazy" onerror="this.style.display=\'none\'">':'';var b='';if(f.ninchi)b+='<span style="background:#dbeafe;color:#1d4ed8;font-size:.6rem;padding:1px 5px;border-radius:6px;font-weight:700">認知症</span> ';if(f.mitatori)b+='<span style="background:#fce7f3;color:#9d174d;font-size:.6rem;padding:1px 5px;border-radius:6px;font-weight:700">看取り</span>';return '<div class="tf-hpop">'+img+'<div class="tf-hpop-n">'+f.title+'</div><span class="tf-hpop-t" style="background:'+col+'">'+f.type+'</span>'+(f.address?'<div class="tf-hpop-m">📍 '+f.address+'</div>':'')+(f.fee?'<div class="tf-hpop-f">月額 '+f.fee+'</div>':'')+(b?'<div style="margin-bottom:6px">'+b+'</div>':'')+'<a href="'+f[' url']+'" class="tf-hpop-btn">詳細を見る →</a></div>';}
function crd(f){var col=C[f.type]||'#1F5749';var th=f.photo?'<div class="tf-mc-img"><img src="'+f.photo+'" loading="lazy" onerror="this.parentNode.innerHTML=\'<div class=tf-mc-ph>🏠</div>\'"></div>':'<div class="tf-mc-img"><div class="tf-mc-ph">🏠</div></div>';return '<div class="tf-mc" id="hc'+f.id+'" onclick="tfHFocus('+f.id+')">'+th+'<div class="tf-mc-body"><div class="tf-mc-name">'+f.title+'</div><span class="tf-mc-tag" style="background:'+col+'">'+f.type+'</span><div class="tf-mc-fee">'+(f.fee?'月額 '+f.fee:'<span style="color:#9ca3af">要相談</span>')+'</div></div></div>';}
function render(data){clst.clearLayers();mkrs={};var sl=document.getElementById('tf-hsl'),sh=document.getElementById('tf-hsh');document.getElementById('tf-hcnt').textContent=data.length+'件';if(sh)sh.textContent='施設リスト('+data.length+'件)';if(!data.length){sl.innerHTML='<div class="tf-mc-empty">該当する施設が見つかりません</div>';return;}var h='';data.forEach(function(f){if(!f.lat||!f.lng)return;var col=C[f.type]||'#1F5749';var m=L.marker([f.lat,f.lng],{icon:mIco(col,false)}).bindPopup(pop(f),{maxWidth:205});m.on('click',function(){actv(f.id);});clst.addLayer(m);mkrs[f.id]={m:m,f:f,col:col};h+=crd(f);});sl.innerHTML=h;}
function actv(id){if(actId){var p=document.getElementById('hc'+actId);if(p)p.classList.remove('on');var pm=mkrs[actId];if(pm)pm.m.setIcon(mIco(pm.col,false));}actId=id;var c=document.getElementById('hc'+id);if(c){c.classList.add('on');c.scrollIntoView({behavior:'smooth',block:'nearest'});}var it=mkrs[id];if(it)it.m.setIcon(mIco(it.col,true));}
window.tfHFocus=function(id){var it=mkrs[id];if(!it)return;actv(id);clst.zoomToShowLayer(it.m,function(){it.m.openPopup();});};
window.tfHF=function(){var q=(document.getElementById('tf-hq').value||'').toLowerCase();var ar=document.getElementById('tf-harea').value;var tp=document.getElementById('tf-htype').value;var cn=document.getElementById('tf-hcond').value;cur=D.filter(function(f){if(ar&&f.area!==ar)return false;if(tp&&f.type.indexOf(tp)<0)return false;if(cn==='ninchi'&&!f.ninchi)return false;if(cn==='mitatori'&&!f.mitatori)return false;if(q&&f.title.toLowerCase().indexOf(q)<0&&(!f.address||f.address.toLowerCase().indexOf(q)<0))return false;return true;});render(cur);};
window.tfHGps=function(){if(!navigator.geolocation){alert('位置情報が利用できません');return;}navigator.geolocation.getCurrentPosition(function(p){map.setView([p.coords.latitude,p.coords.longitude],14);L.marker([p.coords.latitude,p.coords.longitude],{icon:L.divIcon({html:'<div style="width:13px;height:13px;background:#3b82f6;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 3px rgba(59,130,246,.3)"></div>',className:'',iconSize:[13,13],iconAnchor:[6.5,6.5]})}).addTo(map).bindPopup('現在地').openPopup();},function(){alert('位置情報取得に失敗しました');});};
map.on('popupopen',function(e){var ll=e.popup.getLatLng();D.forEach(function(f){if(Math.abs(f.lat-ll.lat)<0.0002&&Math.abs(f.lng-ll.lng)<0.0002)actv(f.id);});});
function renderByBounds(){var b=map.getBounds();var inView=cur.filter(function(f){return f.lat&&f.lng&&b.contains([f.lat,f.lng]);});var sl=document.getElementById('tf-hsl'),sh=document.getElementById('tf-hsh');if(sh)sh.textContent='表示エリアの施設('+inView.length+'件)';if(!inView.length){sl.innerHTML='<div class="tf-mc-empty">このエリアに施設がありません</div>';return;}var h='';inView.forEach(function(f){h+=crd(f);});sl.innerHTML=h;}
map.on('moveend',renderByBounds);map.on('zoomend',renderByBounds);
render(D);
setTimeout(renderByBounds,800);
}
if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',tfHMapInit);}else{tfHMapInit();}
</script>
<!-- Stats Bar -->
<div class="tf-stats">
<div class="tf-stats-inner">
<div class="tf-stat-item">
<span class="tf-stat-num"><?php echo $fac_count; ?><small style="font-size:1rem">件</small></span>
<span class="tf-stat-lbl">掲載施設数</span>
</div>
<div class="tf-stat-item" style="transition-delay:.1s">
<span class="tf-stat-num">4</span>
<span class="tf-stat-lbl">エリア対応</span>
</div>
<div class="tf-stat-item" style="transition-delay:.2s">
<span class="tf-stat-num tf-stat-orange">無料</span>
<span class="tf-stat-lbl">相談・見学同行</span>
</div>
<div class="tf-stat-item" style="transition-delay:.3s">
<span class="tf-stat-num">当日</span>
<span class="tf-stat-lbl">緊急対応</span>
</div>
</div>
</div>
<!-- 悩みから探す(LP Cards) -->
<section class="tf-sec">
<div class="tf-con">
<h2 class="tf-sec-title tf-anim">あなたのお悩みから探す</h2>
<div class="tf-sec-title-line tf-anim"></div>
<p class="tf-sec-sub tf-anim">「何から始めたらいいかわからない」そんな方のために、よくある悩みごとに整理しました。</p>
<div class="tf-lp-grid">
<?php
$lp_pages = [
['slug'=>'ninchisho','icon'=>'🧠','label'=>'認知症','title'=>'親の認知症が進んできた', 'desc'=>'グループホームから認知症対応施設まで、専門家が一緒に考えます'],
['slug'=>'hitori', 'icon'=>'🏠','label'=>'独居の不安','title'=>'一人暮らしが心配になってきた','desc'=>'安否確認・見守り付き住宅から入居まで、段階に合わせてご提案'],
['slug'=>'jitaku', 'icon'=>'🛖','label'=>'在宅の限界','title'=>'そろそろ自宅が難しくなった', 'desc'=>'施設の種類・費用・手続きを丸ごとサポートします'],
['slug'=>'kyunyu', 'icon'=>'🚑','label'=>'急な入居','title'=>'退院後の行き先が急に必要に', 'desc'=>'3日以内の緊急対応も可能。当日相談歓迎です'],
['slug'=>'hiyo', 'icon'=>'💰','label'=>'費用の悩み','title'=>'費用・生活保護での相談', 'desc'=>'低費用施設・補助金・生活保護対応施設をご案内します'],
['slug'=>'enpo', 'icon'=>'💰','label'=>'遠距離介護','title'=>'遠くに住む親の施設を探している','desc'=>'現地見学の同行から入居後のフォローまで対応します'],
];
foreach ( $lp_pages as $i => $lp ):
?>
<a href="<?php echo esc_url($base.'lp/'.$lp['slug'].'/'); ?>" class="tf-lp-card tf-anim" style="transition-delay:<?php echo $i * .08; ?>s">
<div class="tf-lp-icon"><?php echo $lp['icon']; ?></div>
<div class="tf-lp-body">
<p class="tf-lp-label"><?php echo esc_html($lp['label']); ?></p>
<p class="tf-lp-title"><?php echo esc_html($lp['title']); ?></p>
<p class="tf-lp-desc"><?php echo esc_html($lp['desc']); ?></p>
</div>
</a>
<?php endforeach; ?>
</div>
</div>
</section>
<!-- エリアから探す -->
<section class="tf-sec tf-cards-sec">
<div class="tf-con">
<h2 class="tf-sec-title tf-anim">施設を探す</h2>
<div class="tf-sec-title-line tf-anim"></div>
<p class="tf-sec-sub tf-anim">茨城県北エリアの介護施設・高齢者住宅を掲載しています。</p>
<div class="tf-filter-bar tf-anim">
<a href="<?php echo esc_url($base.'facilities/'); ?>" class="tf-filter-btn active">すべて</a>
<a href="<?php echo esc_url($base.'facilities/?type='.rawurlencode('特別養護老人ホーム')); ?>" class="tf-filter-btn">特養</a>
<a href="<?php echo esc_url($base.'facilities/?type='.rawurlencode('グループホーム')); ?>" class="tf-filter-btn">GH</a>
<a href="<?php echo esc_url($base.'facilities/?type='.rawurlencode('有料老人ホーム')); ?>" class="tf-filter-btn">有料</a>
<a href="<?php echo esc_url($base.'facilities/?type='.rawurlencode('サービス付き高齢者向け住宅')); ?>" class="tf-filter-btn">サ高住</a>
</div>
<div class="tf-cards-grid tf-anim">
<?php
$fq = new WP_Query(['post_type'=>'facility','posts_per_page'=>6,'post_status'=>'publish','orderby'=>'date','order'=>'DESC']);
while($fq->have_posts()): $fq->the_post();
$fid2 = get_the_ID();
$ftype2 = get_post_meta($fid2,'tf_type',true);
$fcity2 = get_post_meta($fid2,'tf_city',true);
$ffee2 = get_post_meta($fid2,'tf_monthly_min',true);
$fthumb2 = get_the_post_thumbnail_url($fid2,'medium');
if(!$fthumb2) $fthumb2 = tf_get_facility_photo_url(get_the_title($fid2));
if(!$fthumb2) $fthumb2 = tf_get_facility_photo_url(get_the_title($fid2));
?>
<a href="<?php the_permalink(); ?>" class="tf-card">
<div class="tf-card-img" style="<?php if($fthumb2): ?>background-image:url('<?php echo esc_url($fthumb2); ?>')<?php endif; ?>">
<span class="tf-card-type"><?php echo esc_html($ftype2); ?></span>
</div>
<div class="tf-card-body">
<h3 class="tf-card-title"><?php the_title(); ?></h3>
<p class="tf-card-city">📍 <?php echo esc_html($fcity2); ?></p>
<?php if($ffee2): ?><p class="tf-card-fee">月額 <?php echo number_format((float)$ffee2); ?>円〜</p><?php endif; ?>
</div>
</a>
<?php endwhile; wp_reset_postdata(); ?>
</div>
<div class="tf-btn-wrap tf-anim">
<a href="<?php echo esc_url($base.'facilities/'); ?>" class="tf-btn-main">施設一覧をすべて見る →</a>
</div>
</div>
</section>
<section class="tf-sec tf-sec-alt">
<div class="tf-con">
<h2 class="tf-sec-title tf-anim">エリアから施設を探す</h2>
<div class="tf-sec-title-line tf-anim"></div>
<p class="tf-sec-sub tf-anim">日立市・ひたちなか市・東海村・水戸市の施設情報を掲載しています。</p>
<div class="tf-area-grid">
<?php
// エリアごとの掲載数を動的に取得
$area_counts = [];
foreach ( ['hitachi','hitachinaka','tokai','mito'] as $_a ) {
$area_counts[$_a] = (int) ( new WP_Query([
'post_type' => 'facility',
'post_status' => 'publish',
'posts_per_page' => -1,
'fields' => 'ids',
'meta_query' => [['key'=>'tf_area','value'=>$_a,'compare'=>'=']],
]) )->found_posts;
}
$areas = [
['slug'=>'hitachi', 'city'=>'日立市', 'count'=>$area_counts['hitachi'], 'photo'=>'https://upload.wikimedia.org/wikipedia/commons/8/88/Hitachi_Civic_Center_ac_(2).jpg', 'tags'=>['介護付き','グループホーム','ケアハウス']],
['slug'=>'hitachinaka','city'=>'ひたちなか市', 'count'=>$area_counts['hitachinaka'], 'photo'=>'https://upload.wikimedia.org/wikipedia/commons/f/f9/Ferris_wheel_and_nemophila_in_Umino_Nakamichi_Seaside_Park.JPG', 'tags'=>['サ高住','介護付き','特養あり']],
['slug'=>'tokai', 'city'=>'東海村', 'count'=>$area_counts['tokai'], 'photo'=>'https://upload.wikimedia.org/wikipedia/commons/f/fe/Tokai_village_hall.JPG', 'tags'=>['特養あり','ケアハウス','低費用']],
['slug'=>'mito', 'city'=>'水戸市', 'count'=>$area_counts['mito'], 'photo'=>'https://upload.wikimedia.org/wikipedia/commons/8/89/Senekidai_(Kairakuen).JPG', 'tags'=>['サ高住','住宅型','介護付き']],
];
foreach ( $areas as $i => $area ):
?>
<a href="<?php echo esc_url($base.'area/'.$area['slug'].'/'); ?>" class="tf-area-card tf-anim-scale" style="transition-delay:<?php echo $i * .1; ?>s">
<div class="tf-area-card-img" data-city="<?php echo esc_attr($area['city']); ?>" style="background-image:url('<?php echo esc_url($area['photo']); ?>')">
</div>
<div class="tf-area-card-body">
<p class="tf-area-card-title"><?php echo esc_html($area['city']); ?>の施設</p>
<p class="tf-area-card-count"><?php echo $area['count'] ? $area['count'].'件掲載中' : '近日公開'; ?></p>
<div class="tf-area-card-tags">
<?php foreach($area['tags'] as $tag): ?>
<span class="tf-area-tag"><?php echo esc_html($tag); ?></span>
<?php endforeach; ?>
</div>
</div>
</a>
<?php endforeach; ?>
</div>
</div>
</section>
<!-- 相談の流れ -->
<section class="tf-sec">
<div class="tf-con">
<h2 class="tf-sec-title tf-anim">ご相談の流れ</h2>
<div class="tf-sec-title-line tf-anim"></div>
<p class="tf-sec-sub tf-anim">初めての方でも安心。無料・気軽にスタートできます。</p>
<div class="tf-process">
<div class="tf-process-item tf-anim">
<div class="tf-process-num">1</div>
<p class="tf-process-title">無料でお問い合わせ</p>
<p class="tf-process-desc">電話・フォームどちらでもOK。「まだ決めていない」「情報収集中」でも大丈夫です。</p>
</div>
<div class="tf-process-item tf-anim" style="transition-delay:.15s">
<div class="tf-process-num">2</div>
<p class="tf-process-title">ご状況ヒアリング</p>
<p class="tf-process-desc">現状・ご希望・ご予算・お体の状況をお聞きします。複雑な事情もOK。</p>
</div>
<div class="tf-process-item tf-anim" style="transition-delay:.3s">
<div class="tf-process-num">3</div>
<p class="tf-process-title">施設提案・見学同行</p>
<p class="tf-process-desc">条件に合う施設を絞り込み、見学に同行。入居手続きまで全てサポートします。</p>
</div>
</div>
</div>
</section>
<!-- 注目施設 -->
<?php
$featured_query = new WP_Query([
'post_type'=>'facility','post_status'=>'publish',
'meta_query'=>[['key'=>'tf_featured','value'=>'1','compare'=>'=']],
'meta_key'=>'tf_order','orderby'=>'meta_value_num','order'=>'ASC',
'posts_per_page'=>6,
]);
if ( $featured_query->have_posts() ):
?>
<section class="tf-sec tf-sec-alt">
<div class="tf-con">
<h2 class="tf-sec-title tf-anim">おすすめの施設</h2>
<div class="tf-sec-title-line tf-anim"></div>
<p class="tf-sec-sub tf-anim">相談員のおすすめ・注目の施設をピックアップしました。</p>
<div class="tf-fac-grid">
<?php $i=0; while($featured_query->have_posts()): $featured_query->the_post(); ?>
<div class="tf-anim" style="transition-delay:<?php echo ($i++ * .08); ?>s">
<?php echo tf_facility_card(get_the_ID()); ?>
</div>
<?php endwhile; wp_reset_postdata(); ?>
</div>
<div style="text-align:center;margin-top:40px">
<a href="<?php echo esc_url($base.'facilities/'); ?>" class="btn btn-p">すべての施設を見る(<?php echo $fac_count; ?>件)</a>
</div>
</div>
</section>
<?php endif; ?>
<!-- 冊子「つなぐ、ふくし。」コーナー -->
<section class="tf-zine tf-anim">
<div class="tf-zine-inner">
<div>
<span class="tf-zine-badge">つなぐ、ふくし。 創刊号</span>
<h2 class="tf-zine-h2">このまちの介護を、<br>もっと近くに。</h2>
<p class="tf-zine-text">
「つなぐ、ふくし。」は日立市を中心に種類問わず介護住宅や施設を掲載した無料の地域福祉冊子です。
施設の特色や雰囲気、スタッフの一言コメントを通じて、ただの一覧ではなく、
"その人らしい暮らし"を選ぶための手がかりになることを願っています。
</p>
<a href="tel:09014807174" class="tf-zine-link">090-1480-7174 で冊子を請求する</a>
</div>
<div class="tf-zine-cover">
<p class="tf-zine-cover-no">No.01 2025.12</p>
<p class="tf-zine-cover-title">つなぐ、<br>ふくし。</p>
<div class="tf-zine-cover-illus"></div>
<p class="tf-zine-cover-sub">あなたのまちの"安心できる暮らし"を見つけよう。</p>
</div>
</div>
</section>
<!-- 相談の流れ詳細 -->
<section class="tf-sec">
<div class="tf-con" style="max-width:720px">
<h2 class="tf-sec-title tf-anim">こんなご状況でもご相談ください</h2>
<div class="tf-sec-title-line tf-anim"></div>
<div class="tf-flow" style="margin-top:40px">
<?php
$flows = [
['t'=>'まだ情報収集中です','d'=>'「いつか必要になるかも」という段階でも大丈夫。早めに情報を知っておくことで、いざという時に落ち着いて動けます。'],
['t'=>'お金のことが心配です','d'=>'費用・補助金・生活保護対応施設まで丁寧にご説明します。家族全体の状況をヒアリングした上でご提案します。'],
['t'=>'急いで施設を探しています','d'=>'退院後の行き先が決まらない・急に介護が必要になった——そうした緊急ケースにも当日対応しています。'],
['t'=>'身元保証人がいません','d'=>'身元保証サポートとセットでご相談いただけます。おひとりの方でも安心して入居できる施設をご案内します。'],
];
foreach($flows as $i=>$f):
?>
<div class="tf-flow-item tf-anim" style="transition-delay:<?php echo $i*.1; ?>s">
<div class="tf-flow-num"><?php echo $i+1; ?></div>
<div class="tf-flow-body">
<p class="tf-flow-title"><?php echo esc_html($f['t']); ?></p>
<p class="tf-flow-desc"><?php echo esc_html($f['d']); ?></p>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
<section class="tf-sec tf-contact tf-sec-alt">
<div class="tf-con">
<h2 class="tf-sec-title tf-anim">無料相談・お問い合わせ</h2>
<div class="tf-sec-title-line tf-anim"></div>
<p class="tf-sec-sub tf-anim">施設探しのご相談はお気軽にどうぞ。専門スタッフが丁寧にサポートします。</p>
<div class="tf-contact-wrap tf-anim">
<div class="tf-contact-info">
<div class="tf-contact-tel">
<span class="tf-contact-tel-label">📞 お電話でのご相談</span>
<a href="tel:09014807174" class="tf-contact-tel-num">090-1480-7174</a>
<span class="tf-contact-tel-hours">受付時間:9:00〜18:00(年中無休)</span>
</div>
<p class="tf-contact-note">当日のご相談も歓迎です。まずはお気軽にご連絡ください。</p>
<a href="<?php echo esc_url($base.'contact/'); ?>" class="tf-btn-main">メールでお問い合わせ</a>
</div>
</div>
</div>
</section>
<script>
// Intersection Observer でスクロールアニメーション
(function(){
var els=document.querySelectorAll('.tf-anim,.tf-anim-left,.tf-anim-scale');
if(!els.length)return;
var obs=new IntersectionObserver(function(entries){
entries.forEach(function(e){
if(e.isIntersecting){
e.target.classList.add('visible');
obs.unobserve(e.target);
}
});
},{threshold:.12,rootMargin:'0px 0px -40px 0px'});
els.forEach(function(el){obs.observe(el);});
// ヒーロー内のアニメーション要素は即座に表示
document.querySelectorAll('.tf-hero .tf-anim').forEach(function(el){
el.classList.add('visible');
});
})();
</script>
<?php
tf_portal_footer();
}
/* ============================================================
15. 悩み軸LPページ レンダリング
============================================================ */
function tf_lp_config( $slug ) {
$base = home_url( '/' . TF_BASE . '/' );
$configs = [
'ninchisho' => [
'title' => '親の認知症が進んできた方へ|日立・水戸の老人ホーム相談',
'h1' => '親の認知症が進んできた——<br>どうしたらいいかわからない方へ',
'desc' => '認知症が進む親の施設を探している方へ。日立・水戸・ひたちなか対応。無料相談でお気持ちから聞かせてください。',
'icon' => '',
'lead' => 'ある日気づいたら、親が同じことを何度も聞くようになっていた——そんな変化に気づいたとき、家族は不安と罪悪感の間で揺れます。「施設に入れたら可哀想なのでは」「まだ大丈夫かな」と先延ばしにしているうちに、症状は進んでいきます。',
'worries' => [
'家での介護が限界に近づいている',
'徘徊や夜間の問題行動が増えてきた',
'グループホームと有料老人ホームの違いがわからない',
'本人が「施設には行かない」と言っている',
'兄弟間で意見が合わず、話し合いが進まない',
'費用がいくらかかるか見当もつかない',
],
'steps' => [
[ 'n'=>'01', 'title'=>'現在の状況をお聞かせください', 'body'=>'認知症の段階・日常の困りごと・家族の状況など、まず今の状況をじっくり聞かせてください。30分〜1時間、無料でお話を伺います。' ],
[ 'n'=>'02', 'title'=>'認知症ケアに強い施設を選定', 'body'=>'日立・水戸・ひたちなかエリアの中から、認知症の段階と家族の希望に合った施設を複数ご提案します。グループホーム・介護付き有料老人ホームなど、タイプ別に比較できます。' ],
[ 'n'=>'03', 'title'=>'見学同行・入居サポート', 'body'=>'施設見学にもスタッフが同行します。専門家の視点で「認知症ケアの質」を一緒に確認。入居申し込みから書類準備まで伴走します。' ],
],
'faq' => [
[ 'q'=>'認知症と診断されていなくても相談できますか?', 'a'=>'はい、診断前でも相談可能です。「最近おかしい気がする」という段階からのご相談も多くいただきます。受診のタイミングや病院のご紹介も含めてサポートします。' ],
[ 'q'=>'本人が施設を嫌がっています。どうすればいいですか?', 'a'=>'よくあるご状況です。本人の意思を尊重しながら、「見学だけしてみる」「体験入居を試す」など、段階的なアプローチをご提案できます。' ],
[ 'q'=>'グループホームと有料老人ホームはどう違いますか?', 'a'=>'グループホームは認知症専門の少人数(9名以下)の共同生活施設で、アットホームな環境が特徴です。有料老人ホームは規模が大きく、重度介護・医療対応が充実しています。症状の進行度によって最適な選択が変わります。' ],
],
'cond_key' => 'tf_cond_ninchisho',
'area_label' => '認知症対応施設',
],
'hitori' => [
'title' => '親が1人暮らしで心配な方へ|日立・水戸の老人ホーム相談',
'h1' => '親が1人暮らしで心配——<br>何かあってからでは遅いかもしれない',
'desc' => '離れて暮らす親が1人で心配な方へ。転倒・孤独死・認知症の不安を解消するための施設探しをサポートします。',
'icon' => '',
'lead' => '「実家に電話しても出ないとき、ドキッとする」——離れて暮らす親が1人でいる限り、この不安は消えません。元気なうちに選択肢を知っておくことが、親にとっても家族にとっても安心につながります。',
'worries' => [
'転倒・急病のとき誰も助けてくれない',
'食事・薬・掃除がちゃんとできているか心配',
'認知症になったときのことが不安',
'実家が遠くて頻繁に行けない',
'本人は「まだ大丈夫」と言うが、家族は不安',
'施設に入るほどではないが、何かサービスを使いたい',
],
'steps' => [
[ 'n'=>'01', 'title'=>'今の生活の状況をお聞かせください', 'body'=>'ADL(日常生活動作)の状況、要介護認定の有無、実家の環境など、現在の状況を整理するところからご一緒します。' ],
[ 'n'=>'02', 'title'=>'サービス付き高齢者住宅・施設を比較', 'body'=>'今すぐ入居が必要でない場合も、サービス付き高齢者向け住宅(見守り付き)や、デイサービスとの組み合わせなど、段階的なプランをご提案します。' ],
[ 'n'=>'03', 'title'=>'「転ばぬ先の杖」で早めに動く', 'body'=>'空きが出てからでは選べる施設が限られます。早めに見学・情報収集をしておくことが重要です。見学同行も無料で対応します。' ],
],
'faq' => [
[ 'q'=>'まだ元気な親の施設探しでも相談できますか?', 'a'=>'はい、むしろ早い段階でのご相談をおすすめしています。人気の施設には待機期間があるため、早めの情報収集・見学が将来の選択肢を広げます。' ],
[ 'q'=>'施設に入らなくてもいい選択肢はありますか?', 'a'=>'はい。サービス付き高齢者向け住宅(毎日安否確認・生活相談付き)やデイサービスの活用など、在宅を続けながら安心を高める方法もご提案できます。' ],
[ 'q'=>'親が「施設はイヤ」と言っています', 'a'=>'「施設」という言葉に抵抗を感じる方は多いです。「今のマンションに住みながら、見守りサービスを使う」形もあります。まずは一緒に選択肢を見てみましょう。' ],
],
'cond_key' => '',
'area_label' => '見守り・安心対応施設',
],
'jitaku' => [
'title' => 'そろそろ自宅が難しくなってきた方へ|日立・水戸の老人ホーム相談',
'h1' => 'そろそろ自宅での生活が<br>難しくなってきた——次のステップへ',
'desc' => '在宅介護の限界を感じている家族・ご本人へ。日立・水戸・ひたちなかで自宅に代わる安心できる場所を一緒に探します。',
'icon' => '',
'lead' => '「家で頑張ってきたけど、そろそろ限界かもしれない」——在宅介護を続けてきた家族が辿り着く、このひとことは、とても勇気のいる言葉です。施設への移行は、諦めではなく、親の生活の質を守るための選択です。',
'worries' => [
'介護疲れで共倒れになりそう',
'デイサービスだけでは対応が追いつかない',
'夜間の介護が睡眠不足の原因になっている',
'訪問介護を使っているが、費用が膨らんでいる',
'自分の仕事や家庭との両立が限界',
'本人も「家族に迷惑をかけている」と言い始めた',
],
'steps' => [
[ 'n'=>'01', 'title'=>'今の介護状況を整理しましょう', 'body'=>'要介護度・使っているサービス・家族の負担状況など、現状を一緒に整理します。施設への移行が「今か、もう少し先か」のタイミング判断もお手伝いします。' ],
[ 'n'=>'02', 'title'=>'希望に合う施設タイプを絞り込む', 'body'=>'介護付き有料老人ホーム・グループホーム・特養など、今の介護度と将来の見通しを踏まえた施設タイプをご提案します。' ],
[ 'n'=>'03', 'title'=>'入居プロセスを伴走サポート', 'body'=>'見学・申し込み・入居準備まで一貫してサポート。「施設入居後の実家をどうするか」という次の課題も、グッバイのネットワークでお繋ぎします。' ],
],
'faq' => [
[ 'q'=>'要介護度はどのくらいから入居できますか?', 'a'=>'施設タイプによって異なります。サービス付き高齢者向け住宅は自立〜軽度、介護付き有料老人ホームは要介護1〜5が一般的です。まず要介護認定の状況をお知らせください。' ],
[ 'q'=>'施設に入ったあと、実家はどうすればいいですか?', 'a'=>'実家をどうするかは多くのご家族が悩む課題です。グッバイでは不動産相談・家財処分・相続サポートのパートナー会社とも連携しており、ワンストップでご相談いただけます。' ],
[ 'q'=>'急いで探しています。すぐに入れる施設はありますか?', 'a'=>'はい、緊急対応も得意としています。今日相談して今週見学、来月入居といったスピード対応のご相談実績があります。まずお電話ください。' ],
],
'cond_key' => '',
'area_label' => '在宅限界からの移行対応施設',
],
'kyunyu' => [
'title' => '急に施設が必要になった方へ(退院・転倒)|日立・水戸の老人ホーム緊急相談',
'h1' => '急に施設が必要になった——<br>退院まで時間がない、どこへ相談すれば?',
'desc' => '入院中の親の退院後の行き先が決まっていない方へ。日立・水戸・ひたちなかで緊急施設探しをサポートします。即日相談対応。',
'icon' => '',
'lead' => '病院から「来週退院してください」と言われた——そんな突然の状況で施設を探さなければならないのは、家族にとって本当に辛いことです。でも大丈夫です。このような緊急相談こそ、私たちが最も力になれる場面です。',
'worries' => [
'退院後の受け入れ先が全く決まっていない',
'入院前は自宅にいたが、退院後は一人では無理',
'転倒・骨折後、リハビリ施設から次の行き先が必要',
'家族が遠方にいて、急に動けない',
'介護認定がまだ下りていない',
'どこに電話すればいいかわからない',
],
'steps' => [
[ 'n'=>'01', 'title'=>'まず今日、お電話ください', 'body'=>'「退院がいつか」「現在の状態」「家族の状況」を教えていただければ、当日中に候補施設のご提案が可能な場合があります。緊急対応に慣れたスタッフが対応します。' ],
[ 'n'=>'02', 'title'=>'空きのある施設を優先的に調査', 'body'=>'日立・水戸・ひたちなかの連携施設ネットワークを活用して、今すぐ入居できる施設を優先的に探します。必要に応じて近隣エリアも拡大します。' ],
[ 'n'=>'03', 'title'=>'病院ソーシャルワーカーとの連携', 'body'=>'病院のMSW(医療ソーシャルワーカー)や退院支援室とも連携して手続きを進めます。「何を準備すればいいか」も一緒に整理します。' ],
],
'faq' => [
[ 'q'=>'今日電話して、すぐに施設を紹介してもらえますか?', 'a'=>'はい、緊急対応可能です。すべてのご希望に100%応えられるわけではありませんが、当日中に候補施設をご提案できるケースが多くあります。' ],
[ 'q'=>'介護認定を受けていなくても入居できますか?', 'a'=>'有料老人ホームやサービス付き高齢者向け住宅は、介護認定がなくても入居できる場合があります。認定申請のサポートも行います。' ],
[ 'q'=>'家族が仕事で動けません。代わりに手続きしてもらえますか?', 'a'=>'施設との連絡・書類の確認・見学の日程調整など、できる限りご家族の代わりに動きます。最終的な意思決定は家族にお願いしますが、負担を最大限減らします。' ],
],
'cond_key' => 'tf_cond_iryo',
'area_label' => '緊急入居対応施設',
],
'hiyo' => [
'title' => '施設の費用が心配な方へ(生活保護・低価格)|日立・水戸の老人ホーム相談',
'h1' => '老人ホームの費用が心配——<br>お金がなくても入れる施設はありますか?',
'desc' => '「費用が高くて入れない」という不安がある方へ。生活保護受給者対応・低価格施設の情報を無料でご案内。日立・水戸・ひたちなか対応。',
'icon' => '',
'lead' => '「老人ホームは高い」と思っていませんか?確かに高額な施設もありますが、月8万円台から入居できる施設も存在します。また、生活保護を受けていても入居できる施設があることを知っていただきたいと思います。',
'worries' => [
'年金が少なく、高額な施設には入れない',
'生活保護を受けているが、施設に入れるか不安',
'入居一時金ゼロで入れる施設があるか知りたい',
'施設の費用が毎月いくらかかるか不透明',
'貯蓄が少なく、長期入居が続けられるか心配',
'補助制度・助成を使えるか知りたい',
],
'steps' => [
[ 'n'=>'01', 'title'=>'今の収入・資産状況をお聞かせください', 'body'=>'年金額・貯蓄状況・介護認定の有無などをお聞きし、利用できる制度(補足給付・生活保護の介護扶助など)を整理します。個人情報は厳密に管理します。' ],
[ 'n'=>'02', 'title'=>'予算に合う施設を優先的にご提案', 'body'=>'月々の負担額が抑えられる施設・生活保護対応施設・入居一時金なしの施設を優先的にご紹介します。' ],
[ 'n'=>'03', 'title'=>'制度活用のサポート', 'body'=>'「介護保険の補足給付」「生活保護申請」「高額介護サービス費の還付」など、使える制度の説明と申請サポートも行います。' ],
],
'faq' => [
[ 'q'=>'生活保護を受けていても老人ホームに入れますか?', 'a'=>'はい、入居できます。特別養護老人ホームや生活保護対応の有料老人ホームでは、介護扶助と住宅扶助を活用して入居費用を賄えます。担当ケースワーカーとの連携もサポートします。' ],
[ 'q'=>'一番安い施設でいくらくらいかかりますか?', 'a'=>'日立・水戸・ひたちなかエリアでは、サービス付き高齢者向け住宅で月8〜10万円台から入居できる施設があります。介護サービス費が別途かかる場合があるため、総額でのお見積もりをご案内します。' ],
[ 'q'=>'入居一時金なしの施設はありますか?', 'a'=>'はい、入居一時金なし(0円)の施設は多く存在します。月額費用に集約された施設や、グループホームなどで多く見られます。' ],
],
'cond_key' => 'tf_cond_seikatsuhogo',
'area_label' => '低価格・生活保護対応施設',
],
'enpo' => [
'title' => '遠方から親の施設を探している方へ|日立・水戸の老人ホーム相談',
'h1' => '遠くに住んでいて、<br>親の施設探しができていない方へ',
'desc' => '東京・首都圏在住で茨城(日立・水戸・ひたちなか)に住む親の施設を探している方へ。電話・オンラインで完結する施設探しをサポートします。',
'icon' => '',
'lead' => '「実家が茨城だけど、自分は東京に住んでいて動けない」——こうした状況で親の施設探しを一人で抱えているご家族は少なくありません。直接動けなくても、電話・オンラインで完結する形でお手伝いします。',
'worries' => [
'仕事があって頻繁に実家に帰れない',
'実家に近い施設のことがよくわからない',
'施設見学に行ける日が限られている',
'帰省のたびに大変な思いをしている',
'緊急時の対応が心配',
'もし入居が決まったら引越しのサポートはあるか',
],
'steps' => [
[ 'n'=>'01', 'title'=>'まずオンライン・電話でご相談', 'body'=>'Zoom・電話でのご相談に対応しています。茨城に来なくても、施設の候補選びや比較はリモートで進められます。' ],
[ 'n'=>'02', 'title'=>'スタッフが現地を代わりに確認', 'body'=>'ご家族が見学に来られない場合、スタッフが施設を事前に確認してレポートすることも可能です。見学に来られる日を最大限活用できるよう、事前準備を整えます。' ],
[ 'n'=>'03', 'title'=>'入居後も地元ネットワークで見守り', 'body'=>'入居後も地元(日立・水戸エリア)のネットワークで施設との関係を維持します。遠方からでも安心できる環境を整えます。' ],
],
'faq' => [
[ 'q'=>'一度も茨城に行かずに施設を決めることができますか?', 'a'=>'完全にゼロは難しいですが、事前にリモートで候補を2〜3施設に絞り、1回の帰省で見学→決定まで持っていくことは十分可能です。' ],
[ 'q'=>'見学に来られる日が1日だけです。その日に複数の施設を見られますか?', 'a'=>'はい、1日に2〜3施設を見学するプランを組むことができます。スタッフが同行して効率よく確認できるよう段取りします。' ],
[ 'q'=>'入居が決まったら引越し作業はどうすればいいですか?', 'a'=>'グッバイのパートナーネットワークを通じて、引越しサービスや不用品処分の手配もご案内できます。遠方からでも安心して手配できます。' ],
],
'cond_key' => '',
'area_label' => '遠方からの相談対応施設',
],
];
return isset( $configs[$slug] ) ? $configs[$slug] : null;
}
function tf_render_lp_page( $slug ) {
$cfg = tf_lp_config( $slug );
if ( ! $cfg ) {
global $wp_query;
$wp_query->set_404();
status_header(404);
include get_404_template();
return;
}
$base = home_url( '/' . TF_BASE . '/' );
$canonical = home_url( '/' . TF_BASE . '/lp/' . $slug . '/' );
// 関連施設取得(条件フィルタ付き)
$fac_args = [
'post_type' => 'facility',
'posts_per_page' => 3,
'post_status' => 'publish',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_key' => 'tf_order',
];
if ( $cfg['cond_key'] ) {
$fac_args['meta_query'] = [
[ 'key' => $cfg['cond_key'], 'value' => '1', 'compare' => '=' ],
];
} else {
$fac_args['meta_query'] = [
[ 'key' => 'tf_featured', 'value' => '1', 'compare' => '=' ],
];
}
$facilities = get_posts( $fac_args );
tf_portal_header( $cfg['title'], $cfg['desc'] );
?>
<link rel="canonical" href="<?php echo esc_url($canonical); ?>">
<style>
.lp-hero{background:linear-gradient(135deg,var(--pd) 0%,var(--p) 60%,var(--pl) 100%);padding:72px 0 56px;text-align:center;color:#fff}
.lp-hero-icon{font-size:56px;line-height:1;margin-bottom:16px}
.lp-hero h1{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;line-height:1.5;margin:0 0 20px}
.lp-hero .lead{font-size:1rem;opacity:.9;max-width:620px;margin:0 auto 28px;line-height:1.8}
.lp-hero .btn-hero{display:inline-block;background:var(--a);color:#fff;padding:14px 36px;border-radius:4px;font-size:1.05rem;font-weight:700;text-decoration:none;margin-bottom:8px}
.lp-hero .sub-link{display:block;color:rgba(255,255,255,.8);font-size:.85rem;text-decoration:underline;margin-top:8px}
.lp-worries{background:#fff8f3;padding:56px 0}
.lp-worries h2{text-align:center;font-size:1.4rem;font-weight:800;margin-bottom:28px}
.lp-worries h2 span{color:var(--a)}
.worry-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:680px;margin:0 auto}
.worry-item{background:#fff;border:2px solid #f0d0b8;border-radius:8px;padding:14px 16px;font-size:.95rem;display:flex;align-items:flex-start;gap:10px}
.worry-item::before{content:"✓";color:var(--a);font-weight:800;font-size:1.1rem;flex-shrink:0}
.lp-steps{padding:56px 0}
.lp-steps h2{text-align:center;font-size:1.4rem;font-weight:800;margin-bottom:36px}
.step-list{display:flex;flex-direction:column;gap:24px;max-width:680px;margin:0 auto}
.step-item{display:flex;gap:20px;align-items:flex-start;background:#f4fbf9;border-radius:10px;padding:24px}
.step-num{background:var(--p);color:#fff;font-size:.75rem;font-weight:800;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step-item h3{font-size:1.05rem;font-weight:800;margin:0 0 8px;color:var(--pd)}
.step-item p{font-size:.9rem;color:#555;margin:0;line-height:1.7}
.lp-fac{padding:56px 0;background:#f7f7f7}
.lp-fac h2{text-align:center;font-size:1.4rem;font-weight:800;margin-bottom:8px}
.lp-fac .sub{text-align:center;color:#666;font-size:.9rem;margin-bottom:28px}
.lp-fac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.lp-faq{padding:56px 0}
.lp-faq h2{text-align:center;font-size:1.4rem;font-weight:800;margin-bottom:28px}
.faq-item{border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;overflow:hidden}
.faq-q{background:#f4fbf9;padding:16px 20px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.faq-q::after{content:"+";color:var(--p);font-size:1.2rem}
.faq-a{padding:16px 20px;font-size:.9rem;line-height:1.8;color:#444;background:#fff;border-top:1px solid #e8e8e8}
@media(max-width:600px){.worry-grid{grid-template-columns:1fr}}
</style>
<section class="lp-hero">
<div class="con">
<div class="lp-hero-icon"><?php echo $cfg['icon']; ?></div>
<h1><?php echo $cfg['h1']; ?></h1>
<p class="lead"><?php echo esc_html($cfg['lead']); ?></p>
<a href="<?php echo esc_url($base . 'contact/'); ?>" class="btn-hero">無料で施設を探す(相談予約)</a>
<a href="tel:0294-00-0000" class="sub-link">電話でも相談できます(無料)</a>
</div>
</section>
<section class="lp-worries">
<div class="con">
<h2>こんな<span>お悩み</span>はありませんか?</h2>
<div class="worry-grid">
<?php foreach ( $cfg['worries'] as $w ): ?>
<div class="worry-item"><?php echo esc_html($w); ?></div>
<?php endforeach; ?>
</div>
</div>
</section>
<section class="lp-steps">
<div class="con">
<h2>私たちがこう動きます</h2>
<div class="step-list">
<?php foreach ( $cfg['steps'] as $s ): ?>
<div class="step-item">
<div class="step-num"><?php echo esc_html($s['n']); ?></div>
<div>
<h3><?php echo esc_html($s['title']); ?></h3>
<p><?php echo esc_html($s['body']); ?></p>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
<?php if ( $facilities ): ?>
<section class="lp-fac">
<div class="con">
<h2><?php echo esc_html($cfg['area_label']); ?>の一例</h2>
<p class="sub">日立・水戸・ひたちなかエリアの対応施設から一部をご紹介</p>
<div class="lp-fac-grid">
<?php foreach ( $facilities as $f ): echo tf_facility_card($f->ID); endforeach; ?>
</div>
<div style="text-align:center;margin-top:28px">
<a href="<?php echo esc_url($base . 'facilities/'); ?>" class="btn btn-p">全施設を見る</a>
</div>
</div>
</section>
<?php endif; ?>
<section class="lp-faq">
<div class="con">
<h2>よくある質問</h2>
<?php foreach ( $cfg['faq'] as $f ): ?>
<div class="faq-item">
<div class="faq-q"><?php echo esc_html($f['q']); ?></div>
<div class="faq-a"><?php echo esc_html($f['a']); ?></div>
</div>
<?php endforeach; ?>
</div>
</section>
<?php
tf_portal_footer();
}
/* ============================================================
16. エリアページ レンダリング
============================================================ */
function tf_area_config( $slug ) {
$configs = [
'hitachi' => [
'title' => '日立市の老人ホーム・高齢者施設一覧|つなぐ、ふくし。',
'h1' => '日立市の老人ホーム・<br>高齢者施設を探す',
'desc' => '日立市の老人ホーム・介護施設をお探しの方へ。認知症対応・生活保護対応・緊急入居など、無料で施設探しをサポートします。',
'city' => '日立市',
'area_key' => 'hitachi',
'hero_bg' => 'linear-gradient(135deg,#1a5c50 0%,#237665 60%,#36907e 100%)',
'local_info' => [
'日立市は茨城県北部の工業・商業都市です。日立製作所の企業城下町として栄え、山と海に囲まれた豊かな自然環境があります。',
'高齢化率は茨城県内でも高く、介護施設へのニーズが高まっています。',
'日立総合病院・日製日立病院など医療機関が充実しており、医療連携型の施設も多いのが特徴です。',
'つなぐ、ふくし。では日立市内・近隣エリアの施設情報を豊富に保有しており、見学同行サービスも対応しています。',
],
'nearby' => ['常陸太田市', '高萩市', 'ひたちなか市'],
'sub_pages' => [
[ 'label' => '日立市|認知症対応施設', 'slug' => 'ninchisho', 'icon' => '' ],
[ 'label' => '日立市|生活保護対応施設', 'slug' => 'hiyo', 'icon' => '' ],
[ 'label' => '日立市|急な施設探し', 'slug' => 'kyunyu', 'icon' => '' ],
],
'faq' => [
[ 'q'=>'日立市で認知症対応の施設を探しています', 'a'=>'日立市内には認知症専門のグループホームや、認知症ケアに強い介護付き有料老人ホームが複数あります。つなぐ、ふくし。では認知症の段階・家族の希望に合わせてご提案します。' ],
[ 'q'=>'日立市の施設費用はいくらくらいですか?', 'a'=>'施設タイプによって大きく異なります。グループホームで月12〜18万円、介護付き有料老人ホームで月15〜30万円が目安です。入居一時金なし・生活保護対応の施設もあります。' ],
[ 'q'=>'日立市から別のエリアに移住して施設に入ることはできますか?', 'a'=>'はい、水戸市やひたちなか市の施設に入居することも可能です。エリアをまたいだ施設探しもご相談ください。' ],
],
],
'mito' => [
'title' => '水戸市の老人ホーム・高齢者施設一覧|つなぐ、ふくし。',
'h1' => '水戸市の老人ホーム・<br>高齢者施設を探す',
'desc' => '水戸市の老人ホーム・介護施設をお探しの方へ。認知症対応・生活保護対応・緊急入居など、無料で施設探しをサポートします。',
'city' => '水戸市',
'area_key' => 'mito',
'hero_bg' => 'linear-gradient(135deg,#165447 0%,#237665 60%,#2a8070 100%)',
'local_info' => [
'水戸市は茨城県の県庁所在地で、商業・行政・医療の中心地です。偕楽園・偕楽公園など歴史的な観光名所でも知られます。',
'茨城県内最大の都市として、高齢者施設の数・種類ともに充実しています。',
'水戸医療センター・茨城県立中央病院など高度医療機関との連携施設も多く、医療ニーズの高い方にも対応できます。',
'交通の便が良く、ご家族が面会しやすい施設を選べる点もメリットです。',
],
'nearby' => ['ひたちなか市', '笠間市', '那珂市'],
'sub_pages' => [
[ 'label' => '水戸市|認知症対応施設', 'slug' => 'ninchisho', 'icon' => '' ],
[ 'label' => '水戸市|生活保護対応施設', 'slug' => 'hiyo', 'icon' => '' ],
[ 'label' => '水戸市|急な施設探し', 'slug' => 'kyunyu', 'icon' => '' ],
],
'faq' => [
[ 'q'=>'水戸市内で夫婦一緒に入れる施設はありますか?', 'a'=>'はい、夫婦専用居室を設けている施設が水戸市内に複数あります。介護度が異なる夫婦への対応実績も豊富です。詳しくはご相談ください。' ],
[ 'q'=>'水戸市の施設は費用が高いですか?', 'a'=>'水戸市は県庁所在地であるため、やや費用が高い傾向がありますが、生活保護対応施設や入居一時金なしの施設も存在します。ご予算に合わせてご提案します。' ],
[ 'q'=>'東京から水戸市の親の施設を探したい', 'a'=>'遠方からのご相談も対応しています。オンライン・電話での相談から始め、1〜2回の帰省で施設を決定できるよう段取りします。' ],
],
],
'hitachinaka' => [
'title' => 'ひたちなか市の老人ホーム・高齢者施設一覧|つなぐ、ふくし。',
'h1' => 'ひたちなか市の老人ホーム・<br>高齢者施設を探す',
'desc' => 'ひたちなか市の老人ホーム・介護施設をお探しの方へ。認知症対応・生活保護対応など、無料で施設探しをサポートします。',
'city' => 'ひたちなか市',
'area_key' => 'hitachinaka',
'hero_bg' => 'linear-gradient(135deg,#1a6055 0%,#237665 60%,#389080 100%)',
'local_info' => [
'ひたちなか市は茨城県中部の都市で、那珂湊・勝田エリアに分かれます。ひたちなか海浜公園やネモフィラで観光面でも知られます。',
'水戸市と日立市の中間に位置し、どちらへのアクセスも便利。ベッドタウンとしての性格もあり、比較的年齢層が若い都市ですが高齢化も進んでいます。',
'勝田駅周辺には施設が集まっており、交通アクセスの良い立地で施設を選べます。',
'水戸市・日立市より施設数は少ないですが、つなぐ、ふくし。では周辺エリアも含めたご提案が可能です。',
],
'nearby' => ['水戸市', '那珂市', '東海村'],
'sub_pages' => [
[ 'label' => 'ひたちなか市|認知症対応施設', 'slug' => 'ninchisho', 'icon' => '' ],
[ 'label' => 'ひたちなか市|生活保護対応施設', 'slug' => 'hiyo', 'icon' => '' ],
[ 'label' => 'ひたちなか市|急な施設探し', 'slug' => 'kyunyu', 'icon' => '' ],
],
'faq' => [
[ 'q'=>'ひたちなか市の施設が少ない場合、隣接エリアも探せますか?', 'a'=>'はい、水戸市・那珂市・東海村など近隣エリアも含めてご提案できます。通いやすさや面会頻度などを考慮しながら最適なエリアをご提案します。' ],
[ 'q'=>'ひたちなか市で身元保証なしで入居できる施設はありますか?', 'a'=>'はい、身元保証人なしでも入居相談に対応している施設があります。身元保証サービスのご紹介も含めてサポートします。' ],
[ 'q'=>'ひたちなか市から日立市の施設に入居することはできますか?', 'a'=>'はい、住所地に関わらず、希望するエリアの施設に入居できます。日立・水戸・ひたちなか全エリアをカバーしていますので、お気軽にご相談ください。' ],
],
],
'tokai' => [
'city' => '東海村',
'pref' => '茨城県',
'hero_bg' => 'linear-gradient(135deg,#1b5e4a 0%,#237665 60%,#3a9080 100%)',
'title' => '東海村の老人ホーム・高齢者住宅一覧|無料相談',
'h1' => '東海村の施設を探す',
'desc' => '東海村エリアの老人ホーム・サービス付き高齢者向け住宅・特養をご案内。無料相談でお気軽にどうぞ。',
'area_key' => 'tokai',
'stats' => ['施設数5件','特養あり','ケアハウスあり'],
'local_info'=> [
'東海村は原子力研究所をはじめとした研究機関が集積する茨城県の村です',
'東海駅を中心に公共交通アクセスが良好で、水戸・日立へのアクセスも便利',
'特別養護老人ホーム「常陸東海園」があり、比較的低コストで充実したケアを受けられます',
'地域の介護・医療連携が密接で、駐在看護師がいる施設も複数あります',
'自然豊かな環境の中でゆったりした老後を過ごしたい方に向いています',
],
'sub_pages' => [
['slug'=>'ninchisho', 'icon'=>'🧠', 'label'=>'認知症対応施設'],
['slug'=>'hitori', 'icon'=>'🏠', 'label'=>'一人暮らしが不安な方'],
['slug'=>'jitaku', 'icon'=>'🛖', 'label'=>'自宅が難しくなった方'],
['slug'=>'hiyo', 'icon'=>'💰', 'label'=>'費用を抑えたい方'],
['slug'=>'mitatori', 'icon'=>'💰', 'label'=>'看取り対応施設'],
],
'faq' => [
['q'=>'東海村に特別養護老人ホームはありますか?','a'=>'はい、「常陸東海園」が特別養護老人ホームとして運営されており、月額71,000円〜とリーズナブルです(要介護3以上対象)。'],
['q'=>'東海村の施設への入居相談は無料ですか?','a'=>'はい、すべて無料でご相談いただけます。お電話またはフォームからお気軽にお問い合わせください。'],
['q'=>'東海村から日立や水戸の施設も紹介してもらえますか?','a'=>'はい、東海村を含む周辺エリア全体でお探しいたします。エリアにとらわれずご希望に合った施設をご提案します。'],
],
'nearby' => ['日立市','ひたちなか市','那珂市','水戸市'],
],
];
return isset( $configs[$slug] ) ? $configs[$slug] : null;
}
function tf_render_area_page( $slug ) {
$cfg = tf_area_config( $slug );
if ( ! $cfg ) {
global $wp_query;
$wp_query->set_404();
status_header(404);
include get_404_template();
return;
}
$base = home_url( '/' . TF_BASE . '/' );
$canonical = home_url( '/' . TF_BASE . '/area/' . $slug . '/' );
// エリア施設取得
$facilities = get_posts( [
'post_type' => 'facility',
'posts_per_page' => -1,
'post_status' => 'publish',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_key' => 'tf_order',
'meta_query' => [
[ 'key' => 'tf_area', 'value' => $cfg['area_key'], 'compare' => '=' ],
],
] );
tf_portal_header( $cfg['title'], $cfg['desc'] );
?>
<link rel="canonical" href="<?php echo esc_url($canonical); ?>">
<style>
.area-hero{background:<?php echo $cfg['hero_bg']; ?>;padding:64px 0 48px;text-align:center;color:#fff}
.area-hero h1{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;line-height:1.5;margin:0 0 20px}
.area-hero .area-desc{font-size:1rem;opacity:.9;max-width:580px;margin:0 auto 28px;line-height:1.8}
.area-hero .btn-area{display:inline-block;background:var(--a);color:#fff;padding:14px 36px;border-radius:4px;font-size:1.05rem;font-weight:700;text-decoration:none}
.area-stats{background:#fff;border-radius:12px;display:flex;gap:0;margin:32px auto 0;max-width:560px;overflow:hidden;border:1px solid #e0e0e0}
.area-stat{flex:1;text-align:center;padding:20px 12px;border-right:1px solid #e0e0e0}
.area-stat:last-child{border-right:none}
.area-stat .num{font-size:1.8rem;font-weight:800;color:var(--p);display:block}
.area-stat .lbl{font-size:.78rem;color:#666}
.area-local{padding:48px 0;background:#f4fbf9}
.area-local h2{font-size:1.3rem;font-weight:800;margin-bottom:20px;color:var(--pd)}
.area-local ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.area-local li{padding-left:24px;position:relative;font-size:.95rem;line-height:1.7;color:#444}
.area-local li::before{content:"▶";position:absolute;left:0;color:var(--p);font-size:.75rem;top:4px}
.area-fac{padding:56px 0}
.area-fac h2{font-size:1.35rem;font-weight:800;margin-bottom:8px}
.area-fac .sub{color:#666;font-size:.9rem;margin-bottom:28px}
.area-fac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.area-empty{text-align:center;padding:40px;color:#888;font-size:.95rem;background:#f7f7f7;border-radius:8px}
.area-sub{padding:48px 0;background:#f7f7f7}
.area-sub h2{font-size:1.3rem;font-weight:800;margin-bottom:20px;text-align:center}
.area-sub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.area-sub-card{background:#fff;border:2px solid #e0ece9;border-radius:10px;padding:20px;text-align:center;text-decoration:none;color:inherit;transition:border-color .2s,box-shadow .2s}
.area-sub-card:hover{border-color:var(--p);box-shadow:0 4px 16px rgba(35,118,101,.15)}
.area-sub-card .sc-icon{font-size:2rem;margin-bottom:8px;display:block}
.area-sub-card .sc-label{font-size:.85rem;font-weight:600;color:var(--pd)}
.area-nearby{padding:32px 0;border-top:1px solid #e0e0e0}
.area-nearby h3{font-size:1rem;font-weight:700;margin-bottom:12px;color:#555}
.area-nearby .nearby-tags{display:flex;flex-wrap:wrap;gap:8px}
.area-nearby .tag{background:#f0f0f0;padding:6px 14px;border-radius:20px;font-size:.85rem;color:#555;text-decoration:none}
.area-faq{padding:56px 0}
.area-faq h2{font-size:1.35rem;font-weight:800;margin-bottom:24px}
</style>
<?php
$fac_count = count($facilities);
$types = [];
foreach ($facilities as $f) {
$t = get_post_meta($f->ID, 'tf_type', true);
if ($t) $types[$t] = true;
}
?>
<section class="area-hero">
<div class="con">
<h1><?php echo $cfg['h1']; ?></h1>
<p class="area-desc"><?php echo esc_html($cfg['desc']); ?></p>
<a href="<?php echo esc_url($base . 'contact/'); ?>" class="btn-area">無料で施設を探す(相談予約)</a>
<div class="area-stats">
<div class="area-stat">
<span class="num"><?php echo $fac_count ?: '数十'; ?></span>
<span class="lbl">掲載施設数</span>
</div>
<div class="area-stat">
<span class="num">無料</span>
<span class="lbl">相談料</span>
</div>
<div class="area-stat">
<span class="num">当日</span>
<span class="lbl">緊急対応</span>
</div>
</div>
</div>
</section>
<section class="area-local">
<div class="con">
<h2><?php echo esc_html($cfg['city']); ?>の特徴と介護施設について</h2>
<ul>
<?php foreach ($cfg['local_info'] as $info): ?>
<li><?php echo esc_html($info); ?></li>
<?php endforeach; ?>
</ul>
</div>
</section>
<section class="area-fac">
<div class="con">
<h2><?php echo esc_html($cfg['city']); ?>の施設一覧</h2>
<p class="sub">
<?php echo $fac_count ? $fac_count . '件の施設を掲載中' : '施設情報は順次追加中です'; ?>
・無料相談で非公開施設情報もご案内します
</p>
<?php if ($facilities): ?>
<div class="area-fac-grid">
<?php foreach ($facilities as $f): echo tf_facility_card($f->ID); endforeach; ?>
</div>
<?php else: ?>
<div class="area-empty">
<p>現在、<?php echo esc_html($cfg['city']); ?>の施設情報を準備中です。<br>
お電話・お問い合わせフォームでご相談いただければ、非公開施設も含めてご案内できます。</p>
<a href="<?php echo esc_url($base . 'contact/'); ?>" class="btn btn-p" style="display:inline-block;margin-top:16px">無料相談する</a>
</div>
<?php endif; ?>
</div>
</section>
<section class="area-sub">
<div class="con">
<h2><?php echo esc_html($cfg['city']); ?>の施設を条件から探す</h2>
<div class="area-sub-grid">
<?php foreach ($cfg['sub_pages'] as $sp): ?>
<a href="<?php echo esc_url($base . 'lp/' . $sp['slug'] . '/'); ?>" class="area-sub-card">
<span class="sc-icon"><?php echo $sp['icon']; ?></span>
<span class="sc-label"><?php echo esc_html($sp['label']); ?></span>
</a>
<?php endforeach; ?>
<a href="<?php echo esc_url($base . 'contact/'); ?>" class="area-sub-card" style="border-color:var(--a)">
<span class="sc-icon"></span>
<span class="sc-label" style="color:var(--a)">まず無料で相談する</span>
</a>
</div>
</div>
</section>
<section class="area-faq">
<div class="con">
<h2><?php echo esc_html($cfg['city']); ?>の施設に関するよくある質問</h2>
<?php foreach ($cfg['faq'] as $f): ?>
<div class="faq-item" style="border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;overflow:hidden">
<div class="faq-q" style="background:#f4fbf9;padding:16px 20px;font-weight:700;display:flex;justify-content:space-between;align-items:center">
<?php echo esc_html($f['q']); ?><span style="color:var(--p);font-size:1.2rem">+</span>
</div>
<div class="faq-a" style="padding:16px 20px;font-size:.9rem;line-height:1.8;color:#444;border-top:1px solid #e8e8e8">
<?php echo esc_html($f['a']); ?>
</div>
</div>
<?php endforeach; ?>
</div>
</section>
<section style="padding:48px 0;border-top:1px solid #e8e8e8">
<div class="con">
<h3 style="font-size:1rem;font-weight:700;color:#666;margin-bottom:12px">周辺エリアの施設も探す</h3>
<div style="display:flex;flex-wrap:wrap;gap:10px">
<?php foreach ($cfg['nearby'] as $near): ?>
<a href="<?php echo esc_url($base . 'facilities/'); ?>" style="background:#f0f0f0;padding:8px 16px;border-radius:20px;font-size:.85rem;color:#555;text-decoration:none">
<?php echo esc_html($near); ?>の施設
</a>
<?php endforeach; ?>
<a href="<?php echo esc_url($base . 'facilities/'); ?>" style="background:var(--p);padding:8px 16px;border-radius:20px;font-size:.85rem;color:#fff;text-decoration:none;font-weight:600">
全施設一覧を見る
</a>
</div>
</div>
</section>
<?php
tf_portal_footer();
}
// ── Area meta sync (admin-only, triggered via ?tf_area_sync=1) ──────────────
add_action( 'admin_init', 'tf_run_area_sync' );
function tf_run_area_sync() {
if ( ! isset( $_GET['tf_area_sync'] ) || $_GET['tf_area_sync'] !== '1' ) return;
if ( ! current_user_can( 'administrator' ) ) wp_die( 'Forbidden' );
$city_to_area = [
'日立市' => 'hitachi',
'ひたちなか市' => 'hitachinaka',
'東海村' => 'tokai',
'水戸市' => 'mito',
'那珂市' => 'hitachinaka',
];
$posts = get_posts( [
'post_type' => 'facility',
'posts_per_page' => -1,
'post_status' => 'any',
] );
$updated = [];
$skipped = [];
foreach ( $posts as $post ) {
$city = get_post_meta( $post->ID, 'tf_city', true );
if ( $city && isset( $city_to_area[ $city ] ) ) {
update_post_meta( $post->ID, 'tf_area', $city_to_area[ $city ] );
$order = get_post_meta( $post->ID, 'tf_order', true );
if ( $order === '' || $order === false ) {
update_post_meta( $post->ID, 'tf_order', 50 );
}
$updated[] = $post->ID . ':' . $post->post_title . ' → ' . $city_to_area[ $city ];
} else {
$current_area = get_post_meta( $post->ID, 'tf_area', true );
$skipped[] = $post->ID . ':' . $post->post_title . ' (city=' . $city . ', area=' . $current_area . ')';
}
}
wp_die(
'Area sync complete.<br>'
. 'Updated ' . count( $updated ) . ':<br>' . implode( '<br>', $updated )
. '<br><br>Skipped ' . count( $skipped ) . ':<br>' . implode( '<br>', $skipped )
);
}
/* ============================================================
TF_BATCH_SERVICE — 施設サービス情報一括更新
URL: /?tf_batch_svc=run2026
============================================================ */
add_action('init', function() {
if ( ! isset($_GET['tf_batch_svc']) || $_GET['tf_batch_svc'] !== 'run2026' ) return;
if ( ! current_user_can('manage_options') ) return;
// ウェブ調査済みの個別データ(POST ID => フィールド配列)
$specific = [
// ふるさとホーム日立:特殊浴・機械浴あり、医療連携、認知症対応
// ご長寿くらぶ日立大沼:機械浴あり
// ハートワンひたちなか:機械浴あり、看取り、医療
// 常陸東海園(特養):機械浴あり、看取り、医療
// ご長寿くらぶひたちなか市外野:機械浴あり、医療
// らいふアシスト・ナーシングケアレジデンス:医療ケア充実
// ラ・ナシカひたちなか:医療ケア充実
];
// フィーチャーテキストから自動判定してフラグ更新
$posts = get_posts(['post_type'=>'facility','posts_per_page'=>-1,'post_status'=>'publish']);
$keyword_map = [
'機械浴' => 'tf_bath',
'リフト浴' => 'tf_bath',
'特殊浴' => 'tf_bath',
'看取り' => 'tf_cond_mitatori',
'認知症' => 'tf_cond_ninchisho',
'医療' => 'tf_cond_iryo',
'訪問診療' => 'tf_cond_iryo',
'生活保護' => 'tf_cond_seikatsuhogo',
];
$updated = [];
foreach ($posts as $p) {
$features = (string) get_post_meta($p->ID, 'tf_features', true);
$comment = (string) get_post_meta($p->ID, 'tf_comment', true);
$haystack = $features . ' ' . $comment;
$changes = [];
foreach ($keyword_map as $kw => $field) {
if (mb_strpos($haystack, $kw) !== false) {
$current = get_post_meta($p->ID, $field, true);
if (!$current) {
update_post_meta($p->ID, $field, 1);
$changes[] = $field . '=1 (keyword:'. $kw .')';
}
}
}
// 特定IDの個別オーバーライド
if (isset($specific[$p->ID])) {
foreach ($specific[$p->ID] as $field => $val) {
update_post_meta($p->ID, $field, $val);
$changes[] = $field.'='.$val.' (manual)';
}
}
if ($changes) $updated[] = $p->ID.':'.$p->post_title.' → '.implode(', ',$changes);
}
wp_die('tf_batch_svc done. '.count($updated).' facilities updated:<br>' . implode('<br>', $updated));
});
/* TEMP INSTALLER - auto-removed after use */
add_action('wp_ajax_tf_store_chunk', function() {
if (!current_user_can('manage_options')) wp_die('no');
if(!current_user_can('manage_options'))wp_die('no');
$idx = intval($_POST['idx'] ?? 0);
update_option('_tfc_' . $idx, sanitize_textarea_field($_POST['chunk'] ?? ''), false);
wp_send_json_success($idx);
});
add_action('wp_ajax_tf_install_chunks', function() {
if (!current_user_can('manage_options')) wp_die('no');
if(!current_user_can('manage_options'))wp_die('no');
$n = intval($_POST['n'] ?? 0);
$b64 = '';
for ($i = 0; $i < $n; $i++) { $b64 .= get_option('_tfc_' . $i); delete_option('_tfc_' . $i); }
$raw = base64_decode($b64);
$f = WP_PLUGIN_DIR . '/tunagu-fukushi-plugin/tunagu-fukushi.php';
$r = file_put_contents($f, $raw);
wp_send_json_success(['w' => $r, 'l' => strlen($raw)]);
});
add_action('wp_ajax_tf_ap',function(){if(!current_user_can('manage_options'))wp_die('no');$i=intval($_POST['i']??0);$v=get_option('_tfc_'.$i,'').($_POST['p']??'');update_option('_tfc_'.$i,$v,false);wp_send_json_success(strlen($v));});
add_action('wp_ajax_tf_append_patch',function(){
if(!current_user_can('manage_options'))wp_die('no');
$n=intval($_POST['n']??0);
$b64='';
for($i=0;$i<$n;$i++){$b64.=get_option('_tfc_'.$i);delete_option('_tfc_'.$i);}
$raw=base64_decode($b64);
$f=WP_PLUGIN_DIR.'/tunagu-fukushi-plugin/tunagu-fukushi.php';
$r=file_put_contents($f,$raw,FILE_APPEND);
wp_send_json_success(['w'=>$r,'l'=>strlen($raw)]);
});
/* ============================================================
æ½è¨æ¯è¼ãã¼ã¸
============================================================ */
function tf_render_compare_page() {
$ids_raw = isset($_GET['ids']) ? sanitize_text_field($_GET['ids']) : '';
$ids = array_filter(array_map('intval', explode(',', $ids_raw)));
$ids = array_slice($ids, 0, 3);
$facilities = [];
foreach ($ids as $id) {
$p = get_post($id);
if (!$p || $p->post_type !== 'facility' || $p->post_status !== 'publish') continue;
$facilities[] = $p;
}
if (function_exists('tf_render_portal_header')) {
tf_render_portal_header('æ½è¨ãæ¯è¼ãã');
}
?>
<style>
.tf-compare-page{max-width:1100px;margin:40px auto;padding:0 24px 80px}
.tf-compare-page h1{font-size:1.5rem;font-weight:800;color:#1a2a24;margin:0 0 8px}
.tf-compare-back{display:inline-flex;align-items:center;gap:6px;color:var(--p);font-size:.85rem;font-weight:600;text-decoration:none;margin-bottom:24px}
.tf-compare-back:hover{text-decoration:underline}
.tf-compare-wrap{overflow-x:auto}
.tf-compare-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:500px}
.tf-compare-table th,.tf-compare-table td{padding:12px 16px;border:1px solid #e0ede9;vertical-align:top;text-align:left}
.tf-compare-table .tf-cmp-lbl{background:#f0f8f5;font-weight:700;color:#1a2a24;white-space:nowrap;width:130px}
.tf-compare-table .tf-cmp-hd{background:var(--p);color:#fff;font-weight:700;text-align:center;font-size:.95rem}
.tf-compare-table .tf-cmp-hd a{color:#fff;text-decoration:none}
.tf-compare-table .tf-cmp-hd a:hover{text-decoration:underline}
.tf-cmp-check{color:#2e7d32;font-weight:700}
.tf-cmp-none{color:#aaa;font-size:.8rem}
.tf-compare-btn-row{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;align-items:center}
.tf-cmp-detail-btn{
display:inline-flex;align-items:center;gap:6px;
background:var(--p);color:#fff;
padding:10px 20px;border-radius:6px;
font-size:.85rem;font-weight:700;text-decoration:none;
transition:background .2s;
}
.tf-cmp-detail-btn:hover{background:var(--pd)}
.tf-cmp-back-btn{
display:inline-flex;align-items:center;gap:6px;
background:#f0f0f0;color:#555;
padding:10px 20px;border-radius:6px;
font-size:.85rem;font-weight:600;text-decoration:none;
transition:background .2s;
}
.tf-cmp-back-btn:hover{background:#e0e0e0}
.tf-contact-tel{margin-bottom:20px}
.tf-contact-tel-label{display:block;font-size:.85rem;color:#5a7a6a;margin-bottom:8px}
.tf-contact-tel-num{display:block;font-size:2rem;font-weight:800;color:#4a7868;text-decoration:none;letter-spacing:.05em}
.tf-contact-tel-hours{display:block;font-size:.78rem;color:#888;margin-top:4px}
.tf-contact-note{color:#5a7a6a;font-size:.88rem;margin-bottom:24px}
</style>
<?php if (empty($facilities)): ?>
<div class="tf-compare-page">
<h1>æ½è¨æ¯è¼</h1>
<p style="color:#666;margin:24px 0">æ¯è¼ããæ½è¨ã鏿ããã¦ãã¾ããã</p>
<a href="<?php echo esc_url(home_url('/'.TF_BASE.'/facilities/')); ?>" class="tf-cmp-back-btn">â æ½è¨ä¸è¦§ã«æ»ã</a>
</div>
<?php else: ?>
<div class="tf-compare-page">
<a href="<?php echo esc_url(home_url('/'.TF_BASE.'/facilities/')); ?>" class="tf-compare-back">â æ½è¨ä¸è¦§ã«æ»ã</a>
<h1>æ½è¨ãæ¯è¼ãã</h1>
<p style="color:#666;font-size:.85rem;margin:4px 0 24px"><?php echo count($facilities); ?>ä»¶ã®æ½è¨ãæ¯è¼ãã¦ãã¾ã</p>
<div class="tf-compare-wrap">
<table class="tf-compare-table">
<thead>
<tr>
<th class="tf-cmp-lbl">é
ç®</th>
<?php foreach ($facilities as $f): ?>
<th class="tf-cmp-hd">
<a href="<?php echo esc_url(get_permalink($f->ID)); ?>"><?php echo esc_html($f->post_title); ?></a>
</th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php
$rows = [
'æ½è¨ç¨®å¥' => 'tf_type',
'ã¨ãªã¢' => '__area__',
'使' => 'tf_address',
'æé¡è²»ç¨' => '__fee__',
'å
¥å±
å®å¡' => 'tf_capacity',
'è¦ä»è·åº¦' => 'tf_care_level',
'èªç¥ç対å¿'=> 'tf_dementia',
'å»çã±ã¢' => 'tf_medical',
'å
¥æµ´è¨å' => 'tf_bath',
'ãªãããª' => 'tf_rehab',
'çåã' => 'tf_nursing',
];
foreach ($rows as $label => $key): ?>
<tr>
<td class="tf-cmp-lbl"><?php echo esc_html($label); ?></td>
<?php foreach ($facilities as $f):
if ($key === '__area__') {
$pref = get_post_meta($f->ID,'tf_prefecture',true) ?: '';
$city = get_post_meta($f->ID,'tf_city',true) ?: '';
$val = $pref . $city;
} else if ($key === '__fee__') {
$min = get_post_meta($f->ID,'tf_monthly_min',true);
$max = get_post_meta($f->ID,'tf_monthly_max',true);
$val = tf_format_fee($min,$max, false);
} else {
$val = get_post_meta($f->ID,$key,true);
}
$display = $val ? esc_html($val) : '<span class="tf-cmp-none">â</span>';
echo '<td>'.$display.'</td>';
endforeach; ?>
</tr>
<?php endforeach; ?>
<tr>
<td class="tf-cmp-lbl"></td>
<?php foreach ($facilities as $f): ?>
<td style="text-align:center">
<a href="<?php echo esc_url(get_permalink($f->ID)); ?>" class="tf-cmp-detail-btn">詳細ãè¦ã â</a>
</td>
<?php endforeach; ?>
</tr>
</tbody>
</table>
</div>
<div class="tf-compare-btn-row">
<a href="<?php echo esc_url(home_url('/'.TF_BASE.'/facilities/')); ?>" class="tf-cmp-back-btn">â æ½è¨ä¸è¦§ã«æ»ã</a>
<a href="<?php echo esc_url(home_url('/'.TF_BASE.'/contact/')); ?>" class="tf-cmp-detail-btn">ð ç¡æã§ç¸è«ãã</a>
</div>
</div>
<?php endif;
if (function_exists('tf_render_portal_footer')) tf_render_portal_footer();
if (function_exists('tf_render_page_footer')) tf_render_page_footer();
}
Warning: Cannot modify header information - headers already sent by (output started at /home/r9700773/public_html/goodbyinc.com/wp-content/plugins/tunagu-fukushi-plugin/tunagu-fukushi.php:1) in /home/r9700773/public_html/goodbyinc.com/wp-content/plugins/google-sitemap-generator/sitemap-core.php on line 2064
https://goodbyinc.com/sitemap-misc.xml
2026-04-19T16:29:25+00:00
https://goodbyinc.com/category-sitemap.xml
2026-04-19T16:29:25+00:00
https://goodbyinc.com/post-sitemap.xml
2026-04-13T11:38:53+00:00
https://goodbyinc.com/page-sitemap.xml
2026-04-19T16:29:25+00:00