{"id":2245,"date":"2025-09-27T16:48:46","date_gmt":"2025-09-27T08:48:46","guid":{"rendered":"https:\/\/datotek.pluszero.tw\/?page_id=2245"},"modified":"2025-12-09T10:34:20","modified_gmt":"2025-12-09T02:34:20","slug":"social-media","status":"publish","type":"page","link":"https:\/\/www.datotek.co\/zh\/social-media\/","title":{"rendered":"\u793e\u7fa4\u5a92\u9ad4"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2245\" class=\"elementor elementor-2245\" data-elementor-settings=\"{&quot;ha_cmc_init_switcher&quot;:&quot;no&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a27576 e-con-full e-flex e-con e-parent\" data-id=\"4a27576\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-028a07d elementor-widget elementor-widget-text-editor\" data-id=\"028a07d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Social Media<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6c578b7 e-con-full e-flex e-con e-parent\" data-id=\"6c578b7\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ed1064 elementor-widget elementor-widget-html\" data-id=\"9ed1064\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- <div class=\"new-post-feed\" id=\"mixed-post-feed\"><\/div> -->\n<div id=\"mixed-post-feed\" class=\"mixed-feed-container\">\n    <\/div>\n\n<style>\n    \/* \u9019\u662f\u6839\u64da\u60a8\u63d0\u4f9b\u7684 HTML \u7d50\u69cb\u4e2d\uff0c\u6700\u5916\u5c64\u7684 elementor-element \u985e\u540d *\/\n    .elementor-element-9ee20df, \n    .elementor-element-d14a420 {\n        display: none !important; \/* \u96b1\u85cf\u539f\u751f\u7684 Facebook \u548c Instagram \u994b\u9001 *\/\n    }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d8c3cc0 e-con-full e-flex e-con e-parent\" data-id=\"d8c3cc0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bcc3cba elementor-widget elementor-widget-html\" data-id=\"bcc3cba\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\/* --------------------------------------------------------------------------\n   CSS \u6a23\u5f0f\uff1a\u6a21\u64ec\u9644\u5716\u7684\u90e8\u843d\u683c\u98a8\u683c (\u4e09\u6b04\u6392\u7248)\n   -------------------------------------------------------------------------- *\/\n\n\/* 1. \u96b1\u85cf\u539f\u59cb\u7684\u793e\u7fa4\u8cbc\u6587\u5bb9\u5668 *\/\n\/* \u6839\u64da\u60a8\u63d0\u4f9b\u7684 HTML \u7d50\u69cb\uff0c\u539f\u59cb\u7684 FB \u548c IG \u5bb9\u5668\u5206\u5225\u662f\uff1a *\/\n#wpsr-fb-feed-3652, \n#wpsr-ig-feed-3682,\n\/* \u6216\u662f\u5b83\u5011\u7684\u7236\u7d1a\u5bb9\u5668 *\/\n.wpsr-feed-wrap { \n    display: none !important;\n}\n\n\/* 2. \u5b9a\u7fa9\u65b0\u7684\u8cbc\u6587\u986f\u793a\u5340\u57df *\/\nbody {\n    font-family: Arial, sans-serif;\n    margin: 0;\n    padding: 0px 0px;\n    background-color: #ffffff;\n}\n\n\/* \u65b0\u7684\u8cbc\u6587\u5bb9\u5668\uff1a\u4e09\u6b04\u7db2\u683c\u4f48\u5c40 *\/\n.new-post-feed {\n    display: grid;\n    grid-template-columns: repeat(3, 1fr); \/* \u4e09\u6b04 *\/\n    gap: 50px 30px; \/* \u884c\u5217\u9593\u8ddd *\/\n    max-width: 1200px; \/* \u7a0d\u5fae\u589e\u52a0\u6700\u5927\u5bec\u5ea6\u4ee5\u5bb9\u7d0d\u4e09\u6b04 *\/\n    margin: 0 auto;\n}\n\n.post-card {\n    background-color: #ffffff;\n    display: flex;\n    flex-direction: column;\n}\n\n.post-media {\n    width: 100%;\n    padding-top: 75%; \/* \u5716\u7247\u5bb9\u5668\u7dad\u6301 4:3 \u6bd4\u4f8b *\/\n    position: relative;\n    overflow: hidden;\n    background-color: #f0f0f0;\n    margin-bottom: 20px;\n}\n\n.post-media img {\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    transition: transform 0.3s ease-in-out;\n}\n\n.post-card:hover .post-media img {\n    transform: scale(1.05);\n}\n\n.post-meta {\n    font-size: 13px;\n    color: #555;\n    text-transform: uppercase;\n    margin-bottom: 10px;\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n}\n\n.post-platform {\n    font-weight: bold;\n}\n.instagram { color: #E1306C; }\n.facebook { color: #1877F2; }\n\n.post-title {\n    font-size: 16px;\n    line-height: 1.6;\n    color: #333;\n    margin-bottom: 15px;\n    \/* \u9650\u5236\u8cbc\u6587\u5167\u5bb9\u70ba 4 \u884c *\/\n    display: -webkit-box;\n    -webkit-line-clamp: 4; \n    -webkit-box-orient: vertical;\n    overflow: hidden;\n}\n\n.read-more {\n    display: block; \/* \u8b93\u5b83\u4f54\u64da\u4e00\u884c *\/\n    padding: 0 15px 15px; \/* \u8abf\u6574 padding\uff0c\u4f7f\u5176\u9760\u5de6\u4e14\u5728\u5e95\u90e8\u6709\u9593\u8ddd *\/\n    text-align: left; \/* \u9760\u5de6\u5c0d\u9f4a *\/\n    background-color: transparent; \/* \u79fb\u9664\u80cc\u666f\u8272 *\/\n    color: #4A90E2; \/* \u7d66\u4e88\u9023\u7d50\u984f\u8272\uff0c\u4f7f\u5176\u770b\u8d77\u4f86\u50cf\u53ef\u9ede\u64ca *\/\n    text-decoration: none; \/* \u79fb\u9664\u4e0b\u5283\u7dda *\/\n    font-weight: normal; \/* \u4fdd\u6301\u4e00\u822c\u5b57\u91cd *\/\n    border-top: none; \/* \u79fb\u9664\u9802\u90e8\u908a\u6846 *\/\n    margin-top: 0; \/* \u79fb\u9664\u4efb\u4f55\u4e0a\u908a\u8ddd *\/\n    font-size: 14px;\n}\n\n.read-more:hover {\n    text-decoration: underline; \/* Hover \u6642\u986f\u793a\u4e0b\u5283\u7dda *\/\n    background-color: transparent;\n}\n\n\/* \u97ff\u61c9\u5f0f\u8a2d\u8a08 (RWD) *\/\n@media (max-width: 992px) {\n    \/* \u4e2d\u578b\u87a2\u5e55 (\u5982\u5e73\u677f\u6a6b\u5411) \u964d\u70ba\u5169\u6b04 *\/\n    .new-post-feed {\n        grid-template-columns: repeat(2, 1fr);\n    }\n}\n\n@media (max-width: 600px) {\n    \/* \u5c0f\u578b\u87a2\u5e55 (\u5982\u624b\u6a5f) \u964d\u70ba\u55ae\u6b04 *\/\n    .new-post-feed {\n        grid-template-columns: 1fr;\n        gap: 40px;\n    }\n}\n\n.post-meta {\n    \/\/display:none;\n}\n<\/style>\n\n\n\n<style>\n\/* --- \u5bb9\u5668\u548c\u57fa\u672c\u6392\u7248 --- *\/\n.mixed-feed-container {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 30px; \/* \u5361\u7247\u4e4b\u9593\u7684\u9593\u8ddd *\/\n    padding: 20px 0;\n}\n\n\/* \u96b1\u85cf\u539f\u6709\u7684\u793e\u7fa4\u8cbc\u6587\u5bb9\u5668 *\/\n.elementor-element-9ee20df, \n.elementor-element-d14a420 {\n    display: none !important; \n}\n\n.post-card {\n    display: flex;\n    flex-direction: column;\n    width: calc(33.333% - 20px); \/* \u684c\u9762\u7aef\uff1a\u4e09\u6b04\u4f48\u5c40 *\/\n    box-sizing: border-box;\n    border: 1px solid #eee;\n    border-radius: 8px;\n    overflow: hidden;\n    transition: box-shadow 0.3s;\n    background: #fff;\n}\n\n.post-card:hover {\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n\/* --- \u5a92\u9ad4\u5340\u584a (\u5716\u7247\/\u5f71\u7247) --- *\/\n.post-media {\n    width: 100%;\n    aspect-ratio: 4 \/ 3; \n    overflow: hidden;\n}\n\n.post-media img {\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    display: block;\n}\n\n\/* --- Meta \u8cc7\u8a0a (\u73fe\u5728\u53ea\u986f\u793a\u5e73\u81fa\u6a19\u7c64) --- *\/\n.post-meta {\n    display: flex;\n    justify-content: flex-end; \/* \u5c07\u5e73\u81fa\u6a19\u7c64\u63a8\u5230\u53f3\u908a *\/\n    align-items: center;\n    padding: 15px 15px 5px;\n    font-size: 12px;\n}\n\n.post-platform {\n    font-weight: bold;\n    padding: 3px 8px;\n    border-radius: 4px;\n    color: #fff;\n}\n\n.post-platform.facebook {\n    background-color: #3b5998;\n}\n\n.post-platform.instagram {\n    background-color: #e4405f;\n}\n\n.post-title {\n    padding: 5px 15px 15px;\n    font-size: 16px;\n    line-height: 1.5;\n    flex-grow: 1; \n    overflow: hidden;\n    text-overflow: ellipsis;\n    \/* \u9650\u5236\u6a19\u984c\u884c\u6578 *\/\n    display: -webkit-box;\n    -webkit-line-clamp: 10;\n    -webkit-box-orient: vertical;\n}\n\n.read-more {\n    display: block; \/* \u8b93\u5b83\u4f54\u64da\u4e00\u884c *\/\n    padding: 0 15px 15px; \/* \u8abf\u6574 padding\uff0c\u4f7f\u5176\u9760\u5de6\u4e14\u5728\u5e95\u90e8\u6709\u9593\u8ddd *\/\n    text-align: left; \/* \u9760\u5de6\u5c0d\u9f4a *\/\n    background-color: transparent; \/* \u79fb\u9664\u80cc\u666f\u8272 *\/\n    color: #FF6A1B; \/* \u7d66\u4e88\u9023\u7d50\u984f\u8272\uff0c\u4f7f\u5176\u770b\u8d77\u4f86\u50cf\u53ef\u9ede\u64ca *\/\n    text-decoration: none; \/* \u79fb\u9664\u4e0b\u5283\u7dda *\/\n    font-weight: normal; \/* \u4fdd\u6301\u4e00\u822c\u5b57\u91cd *\/\n    border-top: none; \/* \u79fb\u9664\u9802\u90e8\u908a\u6846 *\/\n    margin-top: 0; \/* \u79fb\u9664\u4efb\u4f55\u4e0a\u908a\u8ddd *\/\n    font-size: 12px;\n}\n\n.read-more:hover {\n    text-decoration: underline; \/* Hover \u6642\u986f\u793a\u4e0b\u5283\u7dda *\/\n}\n\n\n\/* --- RWD: \u5e73\u677f (Tablet) --- *\/\n@media (max-width: 1024px) {\n    .post-card {\n        width: calc(50% - 15px); \/* \u5169\u6b04\u4f48\u5c40 *\/\n    }\n    .mixed-feed-container {\n        gap: 20px;\n    }\n}\n\n\/* --- RWD: \u624b\u6a5f (Mobile) --- *\/\n@media (max-width: 600px) {\n    .post-card {\n        width: 100%; \/* \u55ae\u6b04\u4f48\u5c40 *\/\n    }\n    .mixed-feed-container {\n        padding: 10px 0;\n        gap: 15px;\n    }\n}\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05108e1 elementor-widget elementor-widget-html\" data-id=\"05108e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\n    document.addEventListener('DOMContentLoaded', function() {\n        \n        \/\/ \u8f14\u52a9\u51fd\u5f0f\uff1a\u5c07 Unix \u6642\u9593\u6233\u8a18 (\u5929\u6578) \u8f49\u63db\u70ba\u6240\u9700\u7684\u65e5\u671f\u683c\u5f0f (MMM D, YYYY)\n        function formatTimestamp(dayTimestamp) {\n            if (dayTimestamp === 0) return '\u65e5\u671f\u7f3a\u5931';\n            \n            \/\/ \u5c07\u5929\u6578\u6642\u9593\u6233\u8f49\u63db\u56de\u6beb\u79d2\u6578\n            const date = new Date(dayTimestamp * 24 * 3600 * 1000); \n            \n            const options = { month: 'short', day: 'numeric', year: 'numeric' };\n            let dateString = date.toLocaleDateString('en-US', options).toUpperCase();\n            dateString = dateString.replace(\/,\/, ''); \n            return dateString;\n        }\n\n        \/\/ \u8f14\u52a9\u51fd\u5f0f\uff1a\u5c07\u76f8\u5c0d\u6642\u9593\u8f49\u63db\u70ba Unix \u6642\u9593\u6233\u8a18 (\u53ea\u7528\u65bc\u767c\u4f48\u65e5\u671f\u7684\u8a08\u7b97\u548c\u986f\u793a)\n        function relativeTimeToDayTimestamp(relativeTime) {\n            const now = Date.now(); \n            const parts = relativeTime.toLowerCase().split(' ');\n            const value = parseInt(parts[0]);\n            const unit = parts[1];\n            let milliseconds = 0;\n\n            if (unit.includes('day')) milliseconds = value * 24 * 60 * 60 * 1000;\n            else if (unit.includes('week')) milliseconds = value * 7 * 24 * 60 * 60 * 1000;\n            else if (unit.includes('month')) milliseconds = value * 30 * 24 * 60 * 60 * 1000; \n            else if (unit.includes('year')) milliseconds = value * 365 * 24 * 60 * 60 * 1000; \n            else if (unit.includes('ago')) {\n                 const matches = relativeTime.match(\/(\\d+)\\s+(day|week|month|year)s?\\s+ago\/i);\n                 if (matches) {\n                    const val = parseInt(matches[1]);\n                    const uni = matches[2];\n                    if (uni === 'day') milliseconds = val * 24 * 60 * 60 * 1000;\n                    else if (uni === 'week') milliseconds = val * 7 * 24 * 60 * 60 * 1000;\n                    else if (uni === 'month') milliseconds = val * 30 * 24 * 60 * 60 * 1000;\n                    else if (uni === 'year') milliseconds = val * 365 * 24 * 60 * 60 * 1000;\n                 } else {\n                     return Math.floor(now \/ (24 * 3600 * 1000));\n                 }\n            } else {\n                return 0;\n            }\n            \n            const postTime = now - milliseconds;\n            return Math.floor(postTime \/ (24 * 3600 * 1000)); \n        }\n\n\n        \/\/ ----------------------------------------------------\n        \/\/ \u6b65\u9a5f\u4e00\uff1a\u63d0\u53d6\u8cbc\u6587\u8cc7\u6599\u4e26\u5206\u985e\n        \/\/ ----------------------------------------------------\n        const fbPosts = [];\n        const igPosts = [];\n\n        \/\/ \u63d0\u53d6 Facebook \u8cbc\u6587\n        document.querySelectorAll('.wpsr-fb-feed-item.wpsr-fb-post').forEach(fbPost => {\n            const relativeTimeEl = fbPost.querySelector('.wpsr-fb-feed-time');\n            if (!relativeTimeEl) return;\n            \n            const relativeTime = relativeTimeEl.textContent.trim();\n            const dayTimestamp = relativeTimeToDayTimestamp(relativeTime);\n\n            const contentEl = fbPost.querySelector('.wpsr-fb-feed-content');\n            let text = contentEl ? contentEl.textContent.replace(\/Read more|Read less\/g, '').trim() : '\u5167\u5bb9\u7f3a\u5931';\n\n            const linkEl = fbPost.querySelector('.wpsr-fb-feed-content-wrapper > .wpsr-fb-feed-image > a');\n            const mediaEl = fbPost.querySelector('.wpsr-fb-feed-content-wrapper img');\n            const postLink = linkEl ? linkEl.href : '#';\n            const mediaUrl = mediaEl ? mediaEl.src : '';\n\n            fbPosts.push({\n                platform: 'Facebook',\n                timestamp: dayTimestamp, \n                mediaUrl: mediaUrl,\n                text: text,\n                postLink: postLink\n            });\n        });\n\n        \/\/ \u63d0\u53d6 Instagram \u8cbc\u6587\n        document.querySelectorAll('.wpsr-ig-post').forEach(igPost => {\n            const relativeTimeEl = igPost.querySelector('.wpsr-ig-post-time');\n            let relativeTime = relativeTimeEl ? relativeTimeEl.textContent.trim() : '';\n\n            const postId = igPost.getAttribute('data-post_id');\n            const simulatedDayTimestamp = postId ? Math.floor(parseInt(postId.substring(0, 10)) * 1000 \/ (24 * 3600 * 1000)) : 0;\n            const dayTimestamp = relativeTime ? relativeTimeToDayTimestamp(relativeTime) : simulatedDayTimestamp;\n            \n            const postLinkEl = igPost.querySelector('.wpsr-ig-playmode');\n            const postLink = postLinkEl ? postLinkEl.href : '#';\n            \n            const mediaEl = igPost.querySelector('.wpsr-ig-post-media img');\n            const mediaUrl = mediaEl ? mediaEl.src : '';\n            \n            const textEl = igPost.querySelector('.wpsr-ig-post-caption-text');\n            const text = textEl ? textEl.textContent.trim().replace(\/\\.\\.\\.$\/, '') : '\u5167\u5bb9\u7f3a\u5931';\n            \n            igPosts.push({\n                platform: 'Instagram',\n                timestamp: dayTimestamp, \n                mediaUrl: mediaUrl,\n                text: text,\n                postLink: postLink\n            });\n        });\n\n        \/\/ ----------------------------------------------------\n        \/\/ \u6b65\u9a5f\u4e8c\uff1a\u4ea4\u932f\u6392\u5e8f (Interleaving)\n        \/\/ ----------------------------------------------------\n        const allPosts = [];\n        let i = 0; \n        let j = 0; \n        let turn = 0; \/\/ 0: FB, 1: IG\n\n        while (i < fbPosts.length || j < igPosts.length) {\n            if (turn === 0 && i < fbPosts.length) {\n                \/\/ \u8f2a\u5230 FB \u4e14 FB \u9663\u5217\u9084\u6709\u5143\u7d20\n                allPosts.push(fbPosts[i]);\n                i++;\n                turn = 1; \/\/ \u63db\u5230 IG\n            } else if (j < igPosts.length) { \n                \/\/ \u8f2a\u5230 IG \u6216 FB \u5df2\u7d93\u6c92\u4e86\uff0c\u4e14 IG \u9663\u5217\u9084\u6709\u5143\u7d20\n                allPosts.push(igPosts[j]);\n                j++;\n                turn = 0; \/\/ \u63db\u5230 FB\n            } else if (i < fbPosts.length) {\n                \/\/ IG \u6c92\u4e86\uff0c\u4f46 FB \u9084\u6709\u5269\u9918\u5143\u7d20\n                allPosts.push(fbPosts[i]);\n                i++;\n            } else {\n                \/\/ \u96d9\u65b9\u90fd\u6c92\u4e86 (\u9019\u4e0d\u61c9\u8a72\u767c\u751f\u5728 while \u5faa\u74b0\u5167\uff0c\u4f46\u4f5c\u70ba\u5b89\u5168\u6a5f\u5236)\n                break;\n            }\n        }\n\n        \/\/ ----------------------------------------------------\n        \/\/ \u6b65\u9a5f\u4e09\uff1a\u6e32\u67d3\u81f3\u65b0\u7684\u5bb9\u5668\n        \/\/ ----------------------------------------------------\n        const newPostFeed = document.getElementById('mixed-post-feed');\n        if (!newPostFeed) {\n            console.error('\u7f3a\u5c11\u76ee\u6a19\u5bb9\u5668: #mixed-post-feed');\n            return;\n        }\n        \n        \/\/ \u6e05\u7a7a\u5bb9\u5668\n        newPostFeed.innerHTML = ''; \n\n        allPosts.forEach(post => {\n            const card = document.createElement('div');\n            card.className = 'post-card';\n\n            const formattedDate = formatTimestamp(post.timestamp);\n            \n            const mediaSource = post.mediaUrl \n                ? post.mediaUrl \n                : 'https:\/\/via.placeholder.com\/600x450?text=No+Media';\n\n            card.innerHTML = `\n                <div class=\"post-media\">\n                    <a href=\"${post.postLink}\" target=\"_blank\" rel=\"noopener noreferrer\">\n                        <img decoding=\"async\" src=\"${mediaSource}\" alt=\"${post.platform} Post Image\">\n                    <\/a>\n                <\/div>\n                <div class=\"post-meta\">\n                    <!-- <span>${formattedDate}<\/span> -->\n                    <span class=\"post-platform ${post.platform.toLowerCase()}\">\n                        ${post.platform}\n                    <\/span>\n                <\/div>\n                <div class=\"post-title\">\n                    ${post.text}\n                <\/div>\n                <a class=\"read-more\" href=\"${post.postLink}\" target=\"_blank\" rel=\"noopener noreferrer\">\n                    READ MORE\n                <\/a>\n            `;\n\n            newPostFeed.appendChild(card);\n        });\n    });\n<\/script>\n\n<script>\n    document.addEventListener('DOMContentLoaded', function() {\n        \n        \/\/ ----------------------------------------------------\n        \/\/ \u6b65\u9a5f\u4e00\uff1a\u63d0\u53d6\u8cbc\u6587\u8cc7\u6599\u4e26\u5206\u985e (\u53ea\u63d0\u53d6\u5167\u5bb9\u3001\u9023\u7d50\u3001\u5716\u7247)\n        \/\/ ----------------------------------------------------\n        const fbPosts = [];\n        const igPosts = [];\n\n        \/\/ \u63d0\u53d6 Facebook \u8cbc\u6587\n        document.querySelectorAll('.wpsr-fb-feed-item.wpsr-fb-post').forEach(fbPost => {\n            const contentEl = fbPost.querySelector('.wpsr-fb-feed-content');\n            \/\/ \u63d0\u53d6\u5167\u6587\u4e26\u6e05\u7406 'Read more\/less'\n            let text = contentEl ? contentEl.textContent.replace(\/Read more|Read less\/g, '').trim() : '\u5167\u5bb9\u7f3a\u5931';\n\n            const linkEl = fbPost.querySelector('.wpsr-fb-feed-content-wrapper > .wpsr-fb-feed-image > a');\n            const mediaEl = fbPost.querySelector('.wpsr-fb-feed-content-wrapper img');\n            const postLink = linkEl ? linkEl.href : '#';\n            const mediaUrl = mediaEl ? mediaEl.src : '';\n\n            fbPosts.push({\n                platform: 'Facebook',\n                mediaUrl: mediaUrl,\n                text: text,\n                postLink: postLink\n            });\n        });\n\n        \/\/ \u63d0\u53d6 Instagram \u8cbc\u6587\n        document.querySelectorAll('.wpsr-ig-post').forEach(igPost => {\n            const postLinkEl = igPost.querySelector('.wpsr-ig-playmode');\n            const postLink = postLinkEl ? postLinkEl.href : '#';\n            \n            const mediaEl = igPost.querySelector('.wpsr-ig-post-media img');\n            const mediaUrl = mediaEl ? mediaEl.src : '';\n            \n            const textEl = igPost.querySelector('.wpsr-ig-post-caption-text');\n            \/\/ \u63d0\u53d6\u5167\u6587\u4e26\u6e05\u7406 '...'\n            const text = textEl ? textEl.textContent.trim().replace(\/\\.\\.\\.$\/, '') : '\u5167\u5bb9\u7f3a\u5931';\n            \n            igPosts.push({\n                platform: 'Instagram',\n                mediaUrl: mediaUrl,\n                text: text,\n                postLink: postLink\n            });\n        });\n\n        \/\/ ----------------------------------------------------\n        \/\/ \u6b65\u9a5f\u4e8c\uff1a\u4ea4\u932f\u6392\u5e8f (Interleaving Logic)\n        \/\/ ----------------------------------------------------\n        const allPosts = [];\n        let i = 0; \/\/ FB index\n        let j = 0; \/\/ IG index\n        let turn = 0; \/\/ 0: FB, 1: IG\n\n        while (i < fbPosts.length || j < igPosts.length) {\n            if (turn === 0 && i < fbPosts.length) {\n                \/\/ \u8f2a\u5230 FB \u4e14 FB \u9663\u5217\u9084\u6709\u5143\u7d20\n                allPosts.push(fbPosts[i]);\n                i++;\n                turn = 1; \/\/ \u63db\u5230 IG\n            } else if (j < igPosts.length) { \n                \/\/ \u8f2a\u5230 IG (\u7121\u8ad6 FB \u662f\u5426\u7528\u76e1) \u4e14 IG \u9663\u5217\u9084\u6709\u5143\u7d20\n                allPosts.push(igPosts[j]);\n                j++;\n                turn = 0; \/\/ \u63db\u5230 FB\n            } else if (i < fbPosts.length) {\n                \/\/ IG \u6c92\u4e86\uff0c\u4f46 FB \u9084\u6709\u5269\u9918\u5143\u7d20 (\u5c07\u5269\u9918\u7684 FB \u63a5\u7e8c\u5728\u5f8c\u9762)\n                allPosts.push(fbPosts[i]);\n                i++;\n            } else {\n                \/\/ \u96d9\u65b9\u90fd\u6c92\u4e86\n                break;\n            }\n        }\n\n        \/\/ ----------------------------------------------------\n        \/\/ \u6b65\u9a5f\u4e09\uff1a\u6e32\u67d3\u81f3\u65b0\u7684\u5bb9\u5668\n        \/\/ ----------------------------------------------------\n        const newPostFeed = document.getElementById('mixed-post-feed');\n        if (!newPostFeed) {\n            console.error('\u7f3a\u5c11\u76ee\u6a19\u5bb9\u5668: #mixed-post-feed');\n            return;\n        }\n        \n        \/\/ \u6e05\u7a7a\u5bb9\u5668\n        newPostFeed.innerHTML = ''; \n\n        allPosts.forEach(post => {\n            const card = document.createElement('div');\n            card.className = 'post-card';\n\n            const mediaSource = post.mediaUrl \n                ? post.mediaUrl \n                : 'https:\/\/via.placeholder.com\/600x450?text=No+Media';\n\n            card.innerHTML = `\n                <div class=\"post-media\">\n                    <a href=\"${post.postLink}\" target=\"_blank\" rel=\"noopener noreferrer\">\n                        <img decoding=\"async\" src=\"${mediaSource}\" alt=\"${post.platform} Post Image\">\n                    <\/a>\n                <\/div>\n                <div class=\"post-meta\">\n                    <span class=\"post-platform ${post.platform.toLowerCase()}\">\n                        ${post.platform}\n                    <\/span>\n                <\/div>\n                <div class=\"post-title\">\n                    ${post.text}\n                <\/div>\n                <a class=\"read-more\" href=\"${post.postLink}\" target=\"_blank\" rel=\"noopener noreferrer\">\n                    READ MORE\n                <\/a>\n            `;\n\n            newPostFeed.appendChild(card);\n        });\n    });\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-042cd13 e-flex e-con-boxed e-con e-parent\" data-id=\"042cd13\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-af3b13c e-flex e-con-boxed e-con e-parent\" data-id=\"af3b13c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>Social Media microSD Cards Advance+\uff5cUnleash your device\u2019s ultimate performance For professional creators and gamers, speed and stability mean everything. The new microSD Cards Advance+ has officially arrived, setting a new benchmark for next-gen mobile storage. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-2245","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/pages\/2245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/comments?post=2245"}],"version-history":[{"count":76,"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/pages\/2245\/revisions"}],"predecessor-version":[{"id":7464,"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/pages\/2245\/revisions\/7464"}],"wp:attachment":[{"href":"https:\/\/www.datotek.co\/zh\/wp-json\/wp\/v2\/media?parent=2245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}