{"id":3236,"date":"2026-04-02T09:17:54","date_gmt":"2026-04-02T01:17:54","guid":{"rendered":"https:\/\/www.cocobar.com.tw\/news\/?page_id=3236"},"modified":"2026-04-02T10:06:34","modified_gmt":"2026-04-02T02:06:34","slug":"song","status":"publish","type":"page","link":"https:\/\/www.cocobar.com.tw\/news\/song\/","title":{"rendered":"\u7dda\u4e0a\u6b4c\u55ae"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"3236\" class=\"elementor elementor-3236\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-94c8ba2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"94c8ba2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0348a07\" data-id=\"0348a07\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3e33aad elementor-widget elementor-widget-text-editor\" data-id=\"3e33aad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u5efa\u8b70\u628a\u300c\u6b4c\u540d\uff0b\u6b4c\u624b\u300d\u4e00\u8d77\u8f38\u5165\uff0c\u627e\u6b4c\u66f4\u5feb\u66f4\u6e96\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4efbac7 elementor-widget elementor-widget-shortcode\" data-id=\"4efbac7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"ss-app\">\r\n\r\n        <!-- \u641c\u5c0b\u6b4c\u540d -->\r\n \u00a0 \u00a0 \u00a0 \u00a0<div class=\"search-box\">\r\n            <input id=\"ss-title\" type=\"text\" placeholder=\"\u641c\u5c0b\u6b4c\u540d...\">\r\n            <button id=\"ss-btn-title\">\u641c\u6b4c\u540d<\/button>\r\n        <\/div>\r\n\r\n        <!-- \u641c\u5c0b\u6b4c\u624b -->\r\n \u00a0 \u00a0 \u00a0 \u00a0<div class=\"search-box\">\r\n            <input id=\"ss-singer\" type=\"text\" placeholder=\"\u641c\u5c0b\u6b4c\u624b...\">\r\n            <button id=\"ss-btn-singer\">\u641c\u6b4c\u624b<\/button>\r\n        <\/div>\r\n\r\n \u00a0 \u00a0 \u00a0 \u00a0<div id=\"ss-info\"><\/div><br>\r\n \u00a0 \u00a0 \u00a0 \u00a0<div id=\"ss-results\"><p>\u8acb\u8f38\u5165\u6b4c\u540d\u6216\u6b4c\u624b\u958b\u59cb\u641c\u5c0b<\/p><\/div>\r\n        <div id=\"ss-pages\"><\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n    (function () {\r\n        const API = \"https:\\\/\\\/www.cocobar.com.tw\\\/news\\\/wp-json\\\/ss\\\/v1\";\r\n        let currentPage = 1;\r\n\r\n        \/\/ \u4e8b\u4ef6\u7d81\u5b9a\uff1a\u641c\u6b4c\u540d\r\n        document.getElementById('ss-btn-title').addEventListener('click', () => { currentPage = 1; search(); });\r\n        document.getElementById('ss-title').addEventListener('keydown', e => {\r\n            if (e.key === 'Enter') { currentPage = 1; search(); }\r\n        });\r\n\r\n        \/\/ \u4e8b\u4ef6\u7d81\u5b9a\uff1a\u641c\u6b4c\u624b\r\n        document.getElementById('ss-btn-singer').addEventListener('click', () => { currentPage = 1; search(); });\r\n        document.getElementById('ss-singer').addEventListener('keydown', e => {\r\n            if (e.key === 'Enter') { currentPage = 1; search(); }\r\n        });\r\n\r\n        function search() {\r\n            const title  = document.getElementById('ss-title').value.trim();\r\n            const singer = document.getElementById('ss-singer').value.trim();\r\n\r\n            if (!title && !singer) {\r\n                document.getElementById('ss-results').innerHTML = '<p>\u8acb\u8f38\u5165\u6b4c\u540d\u6216\u6b4c\u624b\u958b\u59cb\u641c\u5c0b<\/p>';\r\n                document.getElementById('ss-info').textContent  = '';\r\n                document.getElementById('ss-pages').innerHTML   = '';\r\n                return;\r\n            }\r\n\r\n            const params = new URLSearchParams();\r\n            if (title)  params.set('title',  title);\r\n            if (singer) params.set('singer', singer);\r\n            params.set('page',     currentPage);\r\n            params.set('per_page', 20);\r\n\r\n            document.getElementById('ss-results').innerHTML = '<p>\u641c\u5c0b\u4e2d...<\/p>';\r\n\r\n            fetch(`${API}\/songs?${params}`)\r\n                .then(r => r.json())\r\n                .then(res => {\r\n                    document.getElementById('ss-info').textContent =\r\n                        res.total ? `\u5171\u627e\u5230 ${res.total} \u7b46\u7d50\u679c` : '';\r\n                    renderTable(res.data);\r\n                    renderPages(res.pages);\r\n                })\r\n                .catch(() => {\r\n                    document.getElementById('ss-results').innerHTML = '<p>\u641c\u5c0b\u5931\u6557\uff0c\u8acb\u7a0d\u5f8c\u518d\u8a66<\/p>';\r\n                });\r\n        }\r\n\r\n        function renderTable(songs) {\r\n            const el = document.getElementById('ss-results');\r\n            if (!songs?.length) {\r\n                el.innerHTML = '<p>\u627e\u4e0d\u5230\u7b26\u5408\u7684\u6b4c\u66f2<\/p>';\r\n                return;\r\n            }\r\n            const rows = songs.map(s => `\r\n                <tr>\r\n                    <td>${esc(s.song_no)}<\/td>\r\n                    <td>${esc(s.language)}<\/td>\r\n                    <td>${esc(s.title)}<\/td>\r\n                    <td>${esc(s.singer)}<\/td>\r\n                <\/tr>\r\n            `).join('');\r\n\r\n            el.innerHTML = `\r\n                <table>\r\n                    <thead>\r\n                        <tr>\r\n                            <th>\u7de8\u865f<\/th>\r\n                            <th>\u8a9e\u8a00<\/th>\r\n                            <th>\u6b4c\u540d<\/th>\r\n                            <th>\u6b4c\u624b<\/th>\r\n                        <\/tr>\r\n                    <\/thead>\r\n                    <tbody>${rows}<\/tbody>\r\n                <\/table>\r\n            `;\r\n        }\r\n\r\n        function renderPages(total) {\r\n            const el = document.getElementById('ss-pages');\r\n            el.innerHTML = '';\r\n            for (let i = 1; i <= total; i++) {\r\n                const btn = document.createElement('button');\r\n                btn.textContent = i;\r\n                btn.onclick = () => {\r\n                    currentPage = i;\r\n                    search();\r\n                    scrollTo({ top: 0, behavior: 'smooth' });\r\n                };\r\n                el.appendChild(btn);\r\n            }\r\n        }\r\n\r\n        const esc = s => String(s ?? '').replace(\/[&<>\"']\/g, c =>\r\n            ({ '&':'&amp;', '<':'&lt;', '>':'&gt;', '\"':'&quot;', \"'\":'&#39;' }[c])\r\n        );\r\n\r\n    })();\r\n    <\/script>\r\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u5efa\u8b70\u628a\u300c\u6b4c\u540d\uff0b\u6b4c\u624b\u300d\u4e00\u8d77\u8f38\u5165\uff0c\u627e\u6b4c\u66f4\u5feb\u66f4\u6e96\u3002<\/p>\n","protected":false},"author":14,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3236","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/pages\/3236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/users\/14"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/comments?post=3236"}],"version-history":[{"count":16,"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/pages\/3236\/revisions"}],"predecessor-version":[{"id":6734,"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/pages\/3236\/revisions\/6734"}],"wp:attachment":[{"href":"https:\/\/www.cocobar.com.tw\/news\/wp-json\/wp\/v2\/media?parent=3236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}