{"id":13,"date":"2026-10-12T17:20:51","date_gmt":"2026-10-12T20:20:51","guid":{"rendered":"https:\/\/edsonvieirademetrio.com.br\/?page_id=13"},"modified":"2026-10-13T00:17:40","modified_gmt":"2026-10-13T03:17:40","slug":"plugin-publish-from-preview","status":"publish","type":"page","link":"https:\/\/edsonvieirademetrio.com.br\/index.php\/plugin-publish-from-preview\/","title":{"rendered":"Plugin Publish from preview"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n\/* ==========================================================================\n   Publish from Preview \u2014 landing page\n   Visual language carried over from the Fidei Tecnologia card:\n   Inter + JetBrains Mono, slate ink, engineering grid, pill buttons.\n   ========================================================================== *\/\n\n:root {\n\t--ink: #0f172a;\n\t--body: #475569;\n\t--muted: #64748b;\n\t--faint: #94a3b8;\n\n\t\/*\n\t * \"deep\" is the constant dark surface \u2014 badges, code blocks, the privacy\n\t * panel, the browser chrome. It stays dark in both themes, unlike --ink,\n\t * which is a text colour and flips.\n\t *\/\n\t--deep: #0f172a;\n\t--deep-soft: #1e293b;\n\t--panel: #0f172a;\n\t--on-deep: #e2e8f0;\n\t--accent-on-deep: #22c55e;\n\n\t--accent: #22c55e;        \/* graphics only: fails contrast as text on white *\/\n\t--accent-text: #15803d;   \/* green that is safe for text on a light ground *\/\n\t--accent-deep: #166534;\n\n\t--btn-bg: #15803d;\n\t--btn-fg: #ffffff;\n\n\t--bg: #ffffff;\n\t--surface: #ffffff;\n\t--sunken: #f8fafc;\n\t--line: #e2e8f0;\n\t--hair: rgba(15, 23, 42, 0.10);\n\t--grid: rgba(15, 23, 42, 0.05);\n\n\t--shadow-lift: 0 8px 20px -10px rgba(15, 23, 42, 0.25);\n\t--shadow-deep: 0 30px 60px -20px rgba(15, 23, 42, 0.35);\n\t--shadow-accent: 0 16px 32px -12px rgba(21, 128, 61, 0.45);\n\n\t--sans: \"Inter\", system-ui, -apple-system, \"Segoe UI\", sans-serif;\n\t--mono: \"JetBrains Mono\", ui-monospace, \"SFMono-Regular\", Menlo, monospace;\n\n\t--r-sm: 6px;\n\t--r-md: 14px;\n\t--r-pill: 999px;\n\n\t--gutter: 24px;\n\t--measure: 1120px;\n}\n\n@media (prefers-color-scheme: dark) {\n\n\t:root:not([data-theme=\"light\"]) {\n\t\t--ink: #f1f5f9;\n\t\t--body: #cbd5e1;\n\t\t--muted: #94a3b8;\n\t\t--faint: #64748b;\n\n\t\t--deep: #080f1d;\n\t\t--deep-soft: #16203a;\n\t\t--panel: #141f38;\n\t\t--on-deep: #e2e8f0;\n\t\t--accent-on-deep: #4ade80;\n\n\t\t--accent: #4ade80;\n\t\t--accent-text: #6ee7a0;\n\t\t--accent-deep: #86efac;\n\n\t\t--btn-bg: #4ade80;\n\t\t--btn-fg: #052e16;\n\n\t\t--bg: #0b1120;\n\t\t--surface: #111b2e;\n\t\t--sunken: #0f172a;\n\t\t--line: #243049;\n\t\t--hair: rgba(226, 232, 240, 0.12);\n\t\t--grid: rgba(226, 232, 240, 0.05);\n\n\t\t--shadow-lift: 0 8px 20px -10px rgba(0, 0, 0, 0.6);\n\t\t--shadow-deep: 0 30px 60px -20px rgba(0, 0, 0, 0.75);\n\t\t--shadow-accent: 0 16px 32px -12px rgba(34, 197, 94, 0.3);\n\t}\n}\n\n:root[data-theme=\"dark\"] {\n\t--ink: #f1f5f9;\n\t--body: #cbd5e1;\n\t--muted: #94a3b8;\n\t--faint: #64748b;\n\n\t--deep: #080f1d;\n\t--deep-soft: #16203a;\n\t--panel: #141f38;\n\t--on-deep: #e2e8f0;\n\t--accent-on-deep: #4ade80;\n\n\t--accent: #4ade80;\n\t--accent-text: #6ee7a0;\n\t--accent-deep: #86efac;\n\n\t--btn-bg: #4ade80;\n\t--btn-fg: #052e16;\n\n\t--bg: #0b1120;\n\t--surface: #111b2e;\n\t--sunken: #0f172a;\n\t--line: #243049;\n\t--hair: rgba(226, 232, 240, 0.12);\n\t--grid: rgba(226, 232, 240, 0.05);\n\n\t--shadow-lift: 0 8px 20px -10px rgba(0, 0, 0, 0.6);\n\t--shadow-deep: 0 30px 60px -20px rgba(0, 0, 0, 0.75);\n\t--shadow-accent: 0 16px 32px -12px rgba(34, 197, 94, 0.3);\n}\n\n*,\n*::before,\n*::after {\n\tbox-sizing: border-box;\n}\n\nhtml {\n\tscroll-behavior: smooth;\n}\n\n@media (prefers-reduced-motion: reduce) {\n\n\thtml {\n\t\tscroll-behavior: auto;\n\t}\n}\n\nbody {\n\tmargin: 0;\n\tbackground-color: var(--bg);\n\tbackground-image:\n\t\tlinear-gradient(to right, var(--grid) 1px, transparent 1px),\n\t\tlinear-gradient(to bottom, var(--grid) 1px, transparent 1px);\n\tbackground-size: 36px 36px;\n\tcolor: var(--body);\n\tfont-family: var(--sans);\n\tfont-size: 17px;\n\tline-height: 1.6;\n\t-webkit-font-smoothing: antialiased;\n}\n\n\/* The accent baseplate along the top of the page. *\/\nbody::before {\n\tcontent: \"\";\n\tposition: fixed;\n\tinset: 0 0 auto 0;\n\theight: 6px;\n\tbackground: var(--accent);\n\tz-index: 50;\n}\n\nh1,\nh2,\nh3 {\n\tcolor: var(--ink);\n\tletter-spacing: -0.015em;\n\tmargin: 0;\n}\n\nh1 {\n\tfont-weight: 900;\n\tfont-size: clamp(2.25rem, 6vw, 3.5rem);\n\tline-height: 1.08;\n}\n\nh2 {\n\tfont-weight: 800;\n\tfont-size: clamp(1.6rem, 3.6vw, 2.1rem);\n\tline-height: 1.15;\n}\n\nh3 {\n\tfont-weight: 700;\n\tfont-size: 1.1rem;\n\tline-height: 1.3;\n}\n\np {\n\tmargin: 0;\n}\n\na {\n\tcolor: var(--accent-text);\n\ttext-decoration-thickness: 1px;\n\ttext-underline-offset: 2px;\n}\n\na:hover {\n\tcolor: var(--accent-deep);\n}\n\ncode {\n\tfont-family: var(--mono);\n\tfont-size: 0.88em;\n}\n\n:focus-visible {\n\toutline: 2px solid var(--accent-text);\n\toutline-offset: 3px;\n\tborder-radius: 2px;\n}\n\n.skip {\n\tposition: absolute;\n\tleft: -9999px;\n\ttop: 0;\n\tz-index: 100;\n\tbackground: var(--deep);\n\tcolor: #fff;\n\tpadding: 12px 18px;\n\tborder-radius: 0 0 var(--r-sm) 0;\n\tfont-weight: 600;\n}\n\n.skip:focus {\n\tleft: 0;\n\tcolor: #fff;\n}\n\n\/* --------------------------------------------------------------------------\n   Layout\n   -------------------------------------------------------------------------- *\/\n\n.wrap {\n\twidth: 100%;\n\tmax-width: var(--measure);\n\tmargin-inline: auto;\n\tpadding-inline: var(--gutter);\n}\n\nsection {\n\tpadding-block: clamp(56px, 9vw, 96px);\n}\n\nsection + section {\n\tborder-top: 1px solid var(--hair);\n}\n\n.lede {\n\tfont-size: clamp(1.05rem, 2.2vw, 1.3rem);\n\tfont-weight: 500;\n\tline-height: 1.5;\n\tcolor: var(--body);\n\tmax-width: 62ch;\n}\n\n.section-head {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 14px;\n\tmargin-bottom: 40px;\n\tmax-width: 70ch;\n}\n\n.eyebrow {\n\tfont-family: var(--mono);\n\tfont-size: 0.75rem;\n\tfont-weight: 600;\n\tletter-spacing: 0.12em;\n\ttext-transform: uppercase;\n\tcolor: var(--muted);\n}\n\n\/* --------------------------------------------------------------------------\n   Header\n   -------------------------------------------------------------------------- *\/\n\n.masthead {\n\tpadding-top: 34px;\n\tpadding-bottom: 8px;\n}\n\n.masthead-row {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 16px 28px;\n}\n\n.brand {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\tfont-weight: 700;\n\tfont-size: 1.05rem;\n\tcolor: var(--ink);\n\ttext-decoration: none;\n\tletter-spacing: -0.01em;\n}\n\n.brand:hover {\n\tcolor: var(--ink);\n}\n\n.brand-mark {\n\tdisplay: grid;\n\tplace-items: center;\n\twidth: 38px;\n\theight: 38px;\n\tborder-radius: 10px;\n\tbackground: var(--panel);\n\tflex: none;\n}\n\n.nav {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 6px 20px;\n\tmargin-left: auto;\n\talign-items: center;\n}\n\n.nav a {\n\tfont-size: 0.92rem;\n\tfont-weight: 500;\n\tcolor: var(--body);\n\ttext-decoration: none;\n}\n\n.nav a:hover {\n\tcolor: var(--accent-text);\n\ttext-decoration: underline;\n}\n\n.lang {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 2px;\n\tpadding: 4px;\n\tborder: 1px solid var(--line);\n\tborder-radius: var(--r-pill);\n\tbackground: var(--surface);\n\tfont-family: var(--mono);\n\tfont-size: 0.72rem;\n\tfont-weight: 600;\n}\n\n.lang a,\n.lang span {\n\tpadding: 4px 10px;\n\tborder-radius: var(--r-pill);\n\ttext-decoration: none;\n\tcolor: var(--muted);\n}\n\n.lang a:hover {\n\tcolor: var(--ink);\n}\n\n.lang [aria-current=\"true\"] {\n\tbackground: var(--panel);\n\tcolor: #fff;\n}\n\n\/* --------------------------------------------------------------------------\n   Hero\n   -------------------------------------------------------------------------- *\/\n\n.hero {\n\tpadding-top: clamp(32px, 5vw, 52px);\n}\n\n.hero-grid {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 26px;\n\tmax-width: 56rem;\n}\n\n.badges {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.badge {\n\tfont-family: var(--mono);\n\tfont-size: 0.78rem;\n\tfont-weight: 600;\n\tletter-spacing: 0.02em;\n\tcolor: var(--accent-on-deep);\n\tbackground: var(--panel);\n\tpadding: 7px 13px;\n\tborder-radius: var(--r-sm);\n\twhite-space: nowrap;\n}\n\n.cta-row {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: 14px 18px;\n}\n\n.btn {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 10px;\n\tfont-family: var(--sans);\n\tfont-weight: 700;\n\tfont-size: 1.02rem;\n\tcolor: var(--btn-fg);\n\tbackground: var(--btn-bg);\n\tpadding: 16px 28px;\n\tborder: none;\n\tborder-radius: var(--r-pill);\n\tbox-shadow: var(--shadow-accent);\n\ttext-decoration: none;\n\tcursor: pointer;\n\tmin-height: 44px;\n}\n\n.btn:hover,\n.btn:focus {\n\tbackground: var(--accent-deep);\n\tcolor: var(--btn-fg);\n}\n\n\/* The arrow inherits the button's own text colour, not the page accent. *\/\n.btn .icon {\n\tcolor: currentColor;\n}\n\n.slug-pill {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 8px;\n\tfont-family: var(--mono);\n\tfont-size: 0.8rem;\n\tfont-weight: 600;\n\tcolor: var(--ink);\n\tbackground: var(--surface);\n\tborder: 1px solid var(--line);\n\tpadding: 10px 16px;\n\tborder-radius: var(--r-pill);\n\tbox-shadow: var(--shadow-lift);\n\twhite-space: nowrap;\n}\n\n.dot {\n\twidth: 7px;\n\theight: 7px;\n\tborder-radius: var(--r-pill);\n\tbackground: var(--accent);\n\tdisplay: inline-block;\n\tflex: none;\n}\n\n\/* --------------------------------------------------------------------------\n   The loop: three steps\n   -------------------------------------------------------------------------- *\/\n\n.loop {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(230px, 1fr));\n\tgap: 18px;\n\tmargin-bottom: 44px;\n}\n\n.step {\n\tposition: relative;\n\tpadding: 24px 22px;\n\tbackground: var(--surface);\n\tborder: 1px solid var(--line);\n\tborder-radius: var(--r-md);\n\tbox-shadow: var(--shadow-lift);\n}\n\n.step-n {\n\tfont-family: var(--mono);\n\tfont-size: 0.72rem;\n\tfont-weight: 700;\n\tletter-spacing: 0.1em;\n\tcolor: var(--accent-text);\n\tdisplay: block;\n\tmargin-bottom: 10px;\n}\n\n.step h3 {\n\tmargin-bottom: 8px;\n}\n\n.step p {\n\tfont-size: 0.95rem;\n\tcolor: var(--muted);\n}\n\n\/* --------------------------------------------------------------------------\n   Browser mockups\n   -------------------------------------------------------------------------- *\/\n\n.shot {\n\tmargin-block: 0;\n}\n\n.shot + .shot {\n\tmargin-top: 40px;\n}\n\n.chrome {\n\tborder-radius: var(--r-md);\n\toverflow: hidden;\n\tbox-shadow: var(--shadow-deep);\n\tborder: 1px solid var(--hair);\n\tbackground: #fff;\n}\n\n.chrome-bar {\n\theight: 38px;\n\tbackground: var(--deep);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 14px;\n\tpadding: 0 16px;\n}\n\n.chrome-dots {\n\tdisplay: flex;\n\tgap: 6px;\n\tflex: none;\n}\n\n.chrome-dots span {\n\twidth: 9px;\n\theight: 9px;\n\tborder-radius: 50%;\n\tbackground: #475569;\n}\n\n.chrome-url {\n\tflex: 1;\n\tdisplay: flex;\n\tjustify-content: center;\n\tmin-width: 0;\n}\n\n.chrome-url span {\n\tfont-family: var(--mono);\n\tfont-size: 0.72rem;\n\tcolor: #94a3b8;\n\tbackground: var(--deep-soft);\n\tpadding: 5px 16px;\n\tborder-radius: var(--r-sm);\n\tmax-width: 100%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n\/* The faked page behind the plugin UI. *\/\n.stage {\n\tposition: relative;\n\tbackground: #fff;\n\tpadding: 38px 40px 92px;\n\tmin-height: 300px;\n\toverflow: hidden;\n}\n\n.stage-admin-bar {\n\theight: 26px;\n\tbackground: #1d2327;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 18px;\n\tpadding: 0 14px;\n\tmargin: -38px -40px 30px;\n\tfont-family: var(--sans);\n\tfont-size: 0.68rem;\n\tcolor: #c3c4c7;\n}\n\n.stage-admin-bar b {\n\tcolor: #fff;\n\tfont-weight: 600;\n}\n\n.stage h4 {\n\tmargin: 0 0 12px;\n\tfont-family: Georgia, \"Times New Roman\", serif;\n\tfont-size: 1.6rem;\n\tline-height: 1.2;\n\tcolor: #1d2327;\n\tfont-weight: 700;\n}\n\n.stage-meta {\n\tfont-size: 0.78rem;\n\tcolor: #6b7280;\n\tmargin-bottom: 20px;\n}\n\n.skeleton {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n\n.skeleton i {\n\tdisplay: block;\n\theight: 9px;\n\tborder-radius: 4px;\n\tbackground: #e9edf2;\n}\n\n.skeleton i:nth-child(4) {\n\twidth: 72%;\n}\n\n.skeleton i:nth-child(7) {\n\twidth: 54%;\n}\n\n\/* ---- the plugin's own UI, reproduced with its real values ---- *\/\n\n.pfp-bar,\n.pfp-toast {\n\tposition: absolute;\n\tleft: 50%;\n\tbottom: 22px;\n\ttransform: translateX(-50%);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n\tmax-width: calc(100% - 32px);\n\tborder-radius: 999px;\n\tfont-family: var(--sans);\n\tfont-size: 0.82rem;\n\tbox-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);\n}\n\n.pfp-bar {\n\tpadding: 8px 8px 8px 16px;\n\tbackground: #1d2327;\n\tcolor: #f0f0f1;\n}\n\n.pfp-toast {\n\tpadding: 8px 8px 8px 20px;\n\tbackground: #00a32a;\n\tcolor: #fff;\n\tfont-weight: 600;\n}\n\n.pfp-status {\n\topacity: 0.75;\n\tfont-size: 0.76rem;\n\twhite-space: nowrap;\n}\n\n.pfp-publish {\n\tpadding: 8px 18px;\n\tborder-radius: 999px;\n\tbackground: #00a32a;\n\tcolor: #fff;\n\tfont-weight: 600;\n\twhite-space: nowrap;\n}\n\n.pfp-next {\n\tpadding: 7px 16px;\n\tborder-radius: 999px;\n\tbackground: rgba(255, 255, 255, 0.22);\n\tcolor: #fff;\n\tfont-weight: 600;\n\twhite-space: nowrap;\n}\n\n.pfp-edit {\n\tcolor: #c3c4c7;\n\tfont-size: 0.76rem;\n\twhite-space: nowrap;\n}\n\n.pfp-x {\n\tcolor: #8c8f94;\n\tfont-size: 1.1rem;\n\tline-height: 1;\n\tpadding: 2px 6px;\n}\n\n.pfp-toast .pfp-x {\n\tcolor: rgba(255, 255, 255, 0.8);\n}\n\nfigcaption {\n\tmargin: 14px auto 0;\n\tmax-width: 62ch;\n\tfont-size: 0.88rem;\n\tline-height: 1.5;\n\tcolor: var(--muted);\n\ttext-align: center;\n}\n\n.mockup-note {\n\tmargin: 28px auto 0;\n\tmax-width: 62ch;\n\tfont-size: 0.82rem;\n\tcolor: var(--muted);\n\ttext-align: center;\n\tfont-style: italic;\n}\n\n\/* --------------------------------------------------------------------------\n   Install steps\n   -------------------------------------------------------------------------- *\/\n\n.steps {\n\tcounter-reset: step;\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: grid;\n\tgap: 14px;\n\tmax-width: 70ch;\n}\n\n.steps li {\n\tcounter-increment: step;\n\tposition: relative;\n\tpadding: 20px 22px 20px 64px;\n\tbackground: var(--surface);\n\tborder: 1px solid var(--line);\n\tborder-radius: var(--r-md);\n}\n\n.steps li::before {\n\tcontent: counter(step);\n\tposition: absolute;\n\tleft: 20px;\n\ttop: 18px;\n\twidth: 28px;\n\theight: 28px;\n\tdisplay: grid;\n\tplace-items: center;\n\tborder-radius: var(--r-sm);\n\tbackground: var(--panel);\n\tcolor: var(--accent-on-deep);\n\tfont-family: var(--mono);\n\tfont-size: 0.82rem;\n\tfont-weight: 700;\n}\n\n.steps strong {\n\tcolor: var(--ink);\n}\n\n.aside {\n\tmargin-top: 22px;\n\tpadding: 18px 22px;\n\tborder-left: 3px solid var(--accent);\n\tbackground: var(--sunken);\n\tborder-radius: 0 var(--r-sm) var(--r-sm) 0;\n\tfont-size: 0.95rem;\n\tmax-width: 70ch;\n}\n\n\/* --------------------------------------------------------------------------\n   Behaviour cards\n   -------------------------------------------------------------------------- *\/\n\n.cards {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(270px, 1fr));\n\tgap: 18px;\n}\n\n.card {\n\tpadding: 26px 24px;\n\tbackground: var(--surface);\n\tborder: 1px solid var(--line);\n\tborder-radius: var(--r-md);\n\tbox-shadow: var(--shadow-lift);\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n\n.card h3 {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 10px;\n}\n\n.card p {\n\tfont-size: 0.95rem;\n\tcolor: var(--body);\n}\n\n.card p + p {\n\tmargin-top: 2px;\n}\n\n.icon {\n\tflex: none;\n\twidth: 22px;\n\theight: 22px;\n\tcolor: var(--accent-text);\n}\n\n\/* --------------------------------------------------------------------------\n   Developer reference\n   -------------------------------------------------------------------------- *\/\n\n.hooks {\n\tdisplay: grid;\n\tgap: 20px;\n}\n\n.hook {\n\tborder: 1px solid var(--line);\n\tborder-radius: var(--r-md);\n\tbackground: var(--surface);\n\toverflow: hidden;\n}\n\n.hook-head {\n\tpadding: 18px 22px;\n\tborder-bottom: 1px solid var(--line);\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\talign-items: baseline;\n\tgap: 8px 14px;\n}\n\n.hook-name {\n\tfont-family: var(--mono);\n\tfont-size: 0.92rem;\n\tfont-weight: 700;\n\tcolor: var(--ink);\n\tword-break: break-all;\n}\n\n.hook-kind {\n\tfont-family: var(--mono);\n\tfont-size: 0.68rem;\n\tfont-weight: 700;\n\tletter-spacing: 0.08em;\n\ttext-transform: uppercase;\n\tcolor: var(--accent-on-deep);\n\tbackground: var(--panel);\n\tpadding: 4px 9px;\n\tborder-radius: var(--r-sm);\n}\n\n.hook-body {\n\tpadding: 18px 22px 4px;\n\tfont-size: 0.95rem;\n}\n\npre {\n\tmargin: 16px 0 0;\n\tpadding: 18px 22px;\n\tbackground: var(--deep);\n\tcolor: var(--on-deep);\n\tfont-family: var(--mono);\n\tfont-size: 0.8rem;\n\tline-height: 1.65;\n\toverflow-x: auto;\n\tborder-top: 1px solid var(--hair);\n\ttab-size: 4;\n\t-moz-tab-size: 4;\n}\n\npre code {\n\tfont-size: inherit;\n}\n\n.tok-fn {\n\tcolor: #7dd3fc;\n}\n\n.tok-str {\n\tcolor: #86efac;\n}\n\n.tok-com {\n\tcolor: #94a3b8;\n}\n\n.tok-var {\n\tcolor: #fbbf24;\n}\n\n\/* --------------------------------------------------------------------------\n   Panels: privacy, support, licence\n   -------------------------------------------------------------------------- *\/\n\n.panel {\n\tpadding: 30px 28px;\n\tborder-radius: var(--r-md);\n\tbackground: var(--panel);\n\tborder: 1px solid var(--hair);\n\tcolor: var(--on-deep);\n\tbox-shadow: var(--shadow-deep);\n}\n\n.panel h2,\n.panel h3 {\n\tcolor: #fff;\n}\n\n.panel a {\n\tcolor: var(--accent-on-deep);\n}\n\n.panel a:hover {\n\tcolor: #86efac;\n}\n\n.claims {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 20px 0 0;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n\tgap: 14px 26px;\n}\n\n.claims li {\n\tdisplay: flex;\n\tgap: 11px;\n\tfont-size: 0.95rem;\n\tline-height: 1.5;\n}\n\n.claims .icon {\n\tcolor: var(--accent-on-deep);\n\tmargin-top: 2px;\n}\n\n.split {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n\tgap: 20px;\n\talign-items: start;\n}\n\n.changelog {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: grid;\n\tgap: 18px;\n}\n\n.changelog > li {\n\tpadding: 20px 22px;\n\tbackground: var(--surface);\n\tborder: 1px solid var(--line);\n\tborder-radius: var(--r-md);\n}\n\n.ver {\n\tdisplay: inline-block;\n\tfont-family: var(--mono);\n\tfont-size: 0.78rem;\n\tfont-weight: 700;\n\tcolor: var(--accent-on-deep);\n\tbackground: var(--panel);\n\tpadding: 4px 11px;\n\tborder-radius: var(--r-sm);\n\tmargin-bottom: 12px;\n}\n\n.changelog ul {\n\tmargin: 0;\n\tpadding-left: 20px;\n\tfont-size: 0.93rem;\n\tcolor: var(--body);\n\tdisplay: grid;\n\tgap: 7px;\n}\n\n.meta-list {\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: grid;\n\tgap: 12px;\n}\n\n.meta-list > div {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 4px 12px;\n\tjustify-content: space-between;\n\tpadding-bottom: 12px;\n\tborder-bottom: 1px solid var(--hair);\n\tfont-size: 0.93rem;\n}\n\n.meta-list dt {\n\tcolor: var(--muted);\n}\n\n.meta-list dd {\n\tmargin: 0;\n\tfont-family: var(--mono);\n\tfont-size: 0.86rem;\n\tcolor: var(--ink);\n\ttext-align: right;\n}\n\n\/* --------------------------------------------------------------------------\n   Footer\n   -------------------------------------------------------------------------- *\/\n\n.foot {\n\tpadding-block: 44px 56px;\n\tborder-top: 1px solid var(--hair);\n\tfont-size: 0.88rem;\n\tcolor: var(--muted);\n}\n\n.foot-row {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 14px 28px;\n\talign-items: center;\n\tjustify-content: space-between;\n}\n\n.foot a {\n\tcolor: var(--body);\n}\n\n.foot a:hover {\n\tcolor: var(--accent-text);\n}\n\n.foot-links {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 8px 20px;\n}\n\n\/* --------------------------------------------------------------------------\n   Narrow screens\n   -------------------------------------------------------------------------- *\/\n\n@media (max-width: 720px) {\n\n\t:root {\n\t\t--gutter: 18px;\n\t}\n\n\tbody {\n\t\tfont-size: 16px;\n\t}\n\n\t.nav {\n\t\tmargin-left: 0;\n\t\twidth: 100%;\n\t\torder: 3;\n\t}\n\n\t.stage {\n\t\tpadding: 30px 22px 86px;\n\t}\n\n\t.stage-admin-bar {\n\t\tmargin: -30px -22px 24px;\n\t}\n\n\t.pfp-bar,\n\t.pfp-toast {\n\t\tfont-size: 0.74rem;\n\t\tgap: 7px;\n\t\tpadding-left: 13px;\n\t}\n\n\t.pfp-status,\n\t.pfp-edit {\n\t\tdisplay: none;\n\t}\n\n\tpre {\n\t\tpadding: 16px 18px;\n\t\tfont-size: 0.74rem;\n\t}\n}\n\n@media print {\n\n\tbody {\n\t\tbackground: #fff;\n\t}\n\n\tbody::before,\n\t.nav,\n\t.lang,\n\t.btn {\n\t\tdisplay: none;\n\t}\n}\n\n<\/style>\n\n<header class=\"masthead\">\n\t<div class=\"wrap masthead-row\">\n\t\t<a class=\"brand\" href=\"pt-br.html\">\n\t\t\t<span class=\"brand-mark\" aria-hidden=\"true\">\n\t\t\t\t<svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\">\n\t\t\t\t\t<rect x=\"2\" y=\"8.5\" width=\"18\" height=\"5\" rx=\"2.5\" fill=\"#22c55e\"><\/rect>\n\t\t\t\t\t<path d=\"M5.5 5.5h11M5.5 16.5h7\" stroke=\"#64748b\" stroke-width=\"1.6\" stroke-linecap=\"round\"><\/path>\n\t\t\t\t<\/svg>\n\t\t\t<\/span>\n\t\t\tPublish from Preview\n\t\t<\/a>\n\n\t\t<nav class=\"nav\" aria-label=\"Se\u00e7\u00f5es\">\n\t\t\t<a href=\"#what\">O que faz<\/a>\n\t\t\t<a href=\"#install\">Instala\u00e7\u00e3o<\/a>\n\t\t\t<a href=\"#behaviour\">Funcionamento<\/a>\n\t\t\t<a href=\"#developers\">Desenvolvedores<\/a>\n\t\t\t<a href=\"#support\">Suporte<\/a>\n\t\t<\/nav>\n\n\t\t<p class=\"lang\">\n\t\t\t<a href=\"index.html\" hreflang=\"en\" lang=\"en\">EN<\/a>\n\t\t\t<span aria-current=\"true\">PT\u2011BR<\/span>\n\t\t<\/p>\n\t<\/div>\n<\/header>\n\n<main id=\"main\">\n\n\t<section class=\"hero\">\n\t\t<div class=\"wrap hero-grid\">\n\t\t\t<h1>Revisou, publicou, pr\u00f3ximo.<\/h1>\n\n\t\t\t<p class=\"lede\">\n\t\t\t\tUm bot\u00e3o Publicar na pr\u00f3pria tela de pr\u00e9-visualiza\u00e7\u00e3o. Leia o rascunho como os seus\n\t\t\t\tleitores v\u00e3o ler, publique dali mesmo e v\u00e1 direto para o pr\u00f3ximo \u2014 sem passar pelo editor\n\t\t\t\ts\u00f3 para mudar o status.\n\t\t\t<\/p>\n\n\t\t\t<ul class=\"badges\">\n\t\t\t\t<li class=\"badge\">Gratuito e GPLv2+<\/li>\n\t\t\t\t<li class=\"badge\">WordPress 6.0+<\/li>\n\t\t\t\t<li class=\"badge\">PHP 7.4+<\/li>\n\t\t\t\t<li class=\"badge\">Sem rastreamento<\/li>\n\t\t\t\t<li class=\"badge\">Nada para configurar<\/li>\n\t\t\t<\/ul>\n\n\t\t\t<div class=\"cta-row\">\n\t\t\t\t<a class=\"btn\" href=\"https:\/\/wordpress.org\/plugins\/publish-from-preview\/\">\n\t\t\t\t\tBaixar no WordPress.org\n\t\t\t\t\t<svg class=\"icon\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n\t\t\t\t\t\t<path d=\"M5 12h14M13 6l6 6-6 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n\t\t\t\t\t<\/svg>\n\t\t\t\t<\/a>\n\t\t\t\t<span class=\"slug-pill\"><span class=\"dot\" aria-hidden=\"true\"><\/span>publish-from-preview<\/span>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/section>\n\n\t<section id=\"what\">\n\t\t<div class=\"wrap\">\n\t\t\t<div class=\"section-head\">\n\t\t\t\t<p class=\"eyebrow\">O que faz<\/p>\n\t\t\t\t<h2>A ida e volta que voc\u00ea parou de notar<\/h2>\n\t\t\t\t<p class=\"lede\">\n\t\t\t\t\tRevisar um rascunho no WordPress \u00e9 abrir o post, clicar em Pr\u00e9-visualizar, ler \u2014 e\n\t\t\t\t\tdepois voltar ao editor, esperar carregar e clicar em Publicar. A decis\u00e3o j\u00e1 foi tomada\n\t\t\t\t\tna tela da pr\u00e9via. O plugin deixa voc\u00ea agir ali.\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\n\t\t\t<ol class=\"loop\">\n\t\t\t\t<li class=\"step\">\n\t\t\t\t\t<span class=\"step-n\">Etapa 01<\/span>\n\t\t\t\t\t<h3>Revisar<\/h3>\n\t\t\t\t\t<p>Abra qualquer rascunho, post pendente ou agendado no site, exatamente como um leitor v\u00ea.<\/p>\n\t\t\t\t<\/li>\n\t\t\t\t<li class=\"step\">\n\t\t\t\t\t<span class=\"step-n\">Etapa 02<\/span>\n\t\t\t\t\t<h3>Publicar<\/h3>\n\t\t\t\t\t<p>Uma barra no rodap\u00e9 da tela mostra o status do post e um bot\u00e3o Publicar. Um clique, uma confirma\u00e7\u00e3o.<\/p>\n\t\t\t\t<\/li>\n\t\t\t\t<li class=\"step\">\n\t\t\t\t\t<span class=\"step-n\">Etapa 03<\/span>\n\t\t\t\t\t<h3>Pr\u00f3ximo<\/h3>\n\t\t\t\t\t<p>Voc\u00ea cai no post publicado, e a confirma\u00e7\u00e3o leva de volta aos rascunhos que ainda esperam.<\/p>\n\t\t\t\t<\/li>\n\t\t\t<\/ol>\n\n\t\t\t<figure class=\"shot\">\n\t\t\t\t<div class=\"chrome\">\n\t\t\t\t\t<div class=\"chrome-bar\">\n\t\t\t\t\t\t<span class=\"chrome-dots\" aria-hidden=\"true\"><span><\/span><span><\/span><span><\/span><\/span>\n\t\t\t\t\t\t<span class=\"chrome-url\"><span>exemplo.com.br\/?p=482&amp;preview=true<\/span><\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"stage\">\n\t\t\t\t\t\t<div class=\"stage-admin-bar\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<strong>Meu Site<\/strong><span>Editar post<\/span><span>Publicar<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<h4>O que o rio trouxe<\/h4>\n\t\t\t\t\t\t<p class=\"stage-meta\">Rascunho \u00b7 por Edson<\/p>\n\t\t\t\t\t\t<div class=\"skeleton\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"pfp-bar\">\n\t\t\t\t\t\t\t<span class=\"pfp-status\">Rascunho<\/span>\n\t\t\t\t\t\t\t<span class=\"pfp-publish\">Publicar<\/span>\n\t\t\t\t\t\t\t<span class=\"pfp-edit\">Editar<\/span>\n\t\t\t\t\t\t\t<span class=\"pfp-x\" aria-hidden=\"true\">\u00d7<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<figcaption>\n\t\t\t\t\tA barra na pr\u00e9via de um rascunho: status, Publicar, um atalho para o editor e um bot\u00e3o\n\t\t\t\t\tpara ocultar. O plugin tamb\u00e9m adiciona um item Publicar na barra de administra\u00e7\u00e3o acima.\n\t\t\t\t<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<figure class=\"shot\">\n\t\t\t\t<div class=\"chrome\">\n\t\t\t\t\t<div class=\"chrome-bar\">\n\t\t\t\t\t\t<span class=\"chrome-dots\" aria-hidden=\"true\"><span><\/span><span><\/span><span><\/span><\/span>\n\t\t\t\t\t\t<span class=\"chrome-url\"><span>exemplo.com.br\/o-que-o-rio-trouxe\/<\/span><\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"stage\">\n\t\t\t\t\t\t<div class=\"stage-admin-bar\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<strong>Meu Site<\/strong><span>Editar post<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<h4>O que o rio trouxe<\/h4>\n\t\t\t\t\t\t<p class=\"stage-meta\">Publicado \u00b7 por Edson<\/p>\n\t\t\t\t\t\t<div class=\"skeleton\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"pfp-toast\">\n\t\t\t\t\t\t\t<span>Post publicado.<\/span>\n\t\t\t\t\t\t\t<span class=\"pfp-next\">Revisar o pr\u00f3ximo rascunho (4)<\/span>\n\t\t\t\t\t\t\t<span class=\"pfp-x\" aria-hidden=\"true\">\u00d7<\/span>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<figcaption>\n\t\t\t\t\tA confirma\u00e7\u00e3o no post publicado. Ela conta quantos rascunhos e pendentes ainda esperam e\n\t\t\t\t\tleva at\u00e9 eles, ent\u00e3o revisar uma leva de posts vira prever, publicar, pr\u00f3ximo.\n\t\t\t\t<\/figcaption>\n\t\t\t<\/figure>\n\n\t\t\t<p class=\"mockup-note\">As duas imagens acima s\u00e3o reprodu\u00e7\u00f5es da interface do plugin, n\u00e3o fotografias de um site em execu\u00e7\u00e3o.<\/p>\n\t\t<\/div>\n\t<\/section>\n\n\t<section id=\"install\">\n\t\t<div class=\"wrap\">\n\t\t\t<div class=\"section-head\">\n\t\t\t\t<p class=\"eyebrow\">Instala\u00e7\u00e3o<\/p>\n\t\t\t\t<h2>Tr\u00eas passos, nenhuma tela de ajustes<\/h2>\n\t\t\t<\/div>\n\n\t\t\t<ol class=\"steps\">\n\t\t\t\t<li>No painel, v\u00e1 em <strong>Plugins \u203a Adicionar novo plugin<\/strong> e procure por <strong>Publish from Preview<\/strong>.<\/li>\n\t\t\t\t<li>Clique em <strong>Instalar agora<\/strong> e depois em <strong>Ativar<\/strong>.<\/li>\n\t\t\t\t<li>Abra um rascunho e clique em <strong>Pr\u00e9-visualizar<\/strong>. A barra aparece no rodap\u00e9 da tela.<\/li>\n\t\t\t<\/ol>\n\n\t\t\t<p class=\"aside\">\n\t\t\t\tPrefere instalar o arquivo por conta pr\u00f3pria? Baixe o ZIP no diret\u00f3rio de plugins e envie em\n\t\t\t\t<strong>Plugins \u203a Adicionar novo plugin \u203a Enviar plugin<\/strong>, ou descompacte\n\t\t\t\ta pasta <code>publish-from-preview<\/code> dentro de <code>wp-content\/plugins\/<\/code>. N\u00e3o h\u00e1\n\t\t\t\ttela de ajustes para visitar depois, nem nada para ligar.\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/section>\n\n\t<section id=\"behaviour\">\n\t\t<div class=\"wrap\">\n\t\t\t<div class=\"section-head\">\n\t\t\t\t<p class=\"eyebrow\">Funcionamento<\/p>\n\t\t\t\t<h2>O que o plugin faz e o que ele n\u00e3o faz<\/h2>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"cards\">\n\t\t\t\t<article class=\"card\">\n\t\t\t\t\t<h3>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path d=\"M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM4 21a8 8 0 0 1 16 0\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"><\/path>\n\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\tQuem v\u00ea o bot\u00e3o\n\t\t\t\t\t<\/h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tS\u00f3 quem pode editar aquele post <em>e<\/em> publicar aquele tipo de post. Um colaborador\n\t\t\t\t\t\tnunca v\u00ea. A permiss\u00e3o \u00e9 checada de novo no servidor quando a requisi\u00e7\u00e3o chega, e cada\n\t\t\t\t\t\tlink \u00e9 assinado com um nonce vinculado ao post \u2014 ent\u00e3o o bot\u00e3o n\u00e3o pode ser copiado\n\t\t\t\t\t\tnem forjado para publicar.\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/article>\n\n\t\t\t\t<article class=\"card\">\n\t\t\t\t\t<h3>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<rect x=\"3.5\" y=\"5\" width=\"17\" height=\"15.5\" rx=\"2.5\" stroke=\"currentColor\" stroke-width=\"1.8\"><\/rect>\n\t\t\t\t\t\t\t<path d=\"M3.5 10h17M8 3v4M16 3v4\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"><\/path>\n\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\tA regra da data\n\t\t\t\t\t<\/h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tO post mant\u00e9m a data com que foi escrito. Publicar pela pr\u00e9via deixa a data exatamente\n\t\t\t\t\t\tonde o bot\u00e3o Publicar do editor deixaria.\n\t\t\t\t\t<\/p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tUm post com data futura \u00e9 agendado em vez de publicado, porque \u00e9 o que o pr\u00f3prio\n\t\t\t\t\t\tWordPress faz com uma data assim. A \u00fanica exce\u00e7\u00e3o \u00e9 um post que j\u00e1 estava agendado:\n\t\t\t\t\t\tpublic\u00e1-lo pela pr\u00e9via move a data para agora, j\u00e1 que publicar antes da hora \u00e9\n\t\t\t\t\t\tjustamente o objetivo.\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/article>\n\n\t\t\t\t<article class=\"card\">\n\t\t\t\t\t<h3>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path d=\"M12 3.5 21 20H3l9-16.5Z\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linejoin=\"round\"><\/path>\n\t\t\t\t\t\t\t<path d=\"M12 10v4.5\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"><\/path>\n\t\t\t\t\t\t\t<circle cx=\"12\" cy=\"17.4\" r=\"1.1\" fill=\"currentColor\"><\/circle>\n\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\tAltera\u00e7\u00f5es n\u00e3o salvas\n\t\t\t\t\t<\/h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tA pr\u00e9via mostra a vers\u00e3o do post que foi salva por \u00faltimo. Se o editor ainda tem\n\t\t\t\t\t\taltera\u00e7\u00f5es que nunca chegaram ao banco, o plugin avisa antes de publicar, para voc\u00ea\n\t\t\t\t\t\tn\u00e3o colocar no ar uma vers\u00e3o antiga do post sem perceber.\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/article>\n\n\t\t\t\t<article class=\"card\">\n\t\t\t\t\t<h3>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\tUma confirma\u00e7\u00e3o\n\t\t\t\t\t<\/h3>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tPublicar \u00e9 p\u00fablico e dif\u00edcil de desfazer, ent\u00e3o o bot\u00e3o pergunta uma vez antes de\n\t\t\t\t\t\tagir. Quem desenvolve pode desligar esse aviso com um filtro.\n\t\t\t\t\t<\/p>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tA mesma a\u00e7\u00e3o Publicar est\u00e1 dispon\u00edvel na linha de cada post na listagem e como a\u00e7\u00e3o em\n\t\t\t\t\t\tmassa, para limpar v\u00e1rios rascunhos de uma vez.\n\t\t\t\t\t<\/p>\n\t\t\t\t<\/article>\n\t\t\t<\/div>\n\n\t\t\t<p class=\"aside\">\n\t\t\t\tFunciona com posts, p\u00e1ginas e qualquer tipo de post personalizado que tenha tela no painel.\n\t\t\t\tSe o seu tema nunca chama <code>wp_footer()<\/code>, a barra flutuante n\u00e3o consegue aparecer \u2014\n\t\t\t\to item Publicar na barra de administra\u00e7\u00e3o funciona independente do tema.\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/section>\n\n\t<section id=\"developers\">\n\t\t<div class=\"wrap\">\n\t\t\t<div class=\"section-head\">\n\t\t\t\t<p class=\"eyebrow\">Para desenvolvedores<\/p>\n\t\t\t\t<h2>Quatro filtros e uma action<\/h2>\n\t\t\t\t<p class=\"lede\">\n\t\t\t\t\tO plugin n\u00e3o guarda op\u00e7\u00f5es, ent\u00e3o tudo que \u00e9 ajust\u00e1vel \u00e9 um hook. Coloque qualquer um\n\t\t\t\t\tdestes em um plugin pequeno seu ou no <code>functions.php<\/code> do tema.\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"hooks\">\n\n\t\t\t\t<article class=\"hook\">\n\t\t\t\t\t<div class=\"hook-head\">\n\t\t\t\t\t\t<h3 class=\"hook-name\">publish_from_preview_show_bar<\/h3>\n\t\t\t\t\t\t<span class=\"hook-kind\">Filtro<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"hook-body\">\n\t\t\t\t\t\t<p>Recebe <code>( bool $show, WP_Post $post )<\/code>. Retorne <code>false<\/code> para esconder a barra em um contexto espec\u00edfico.<\/p>\n\t\t\t\t\t<\/div>\n<pre><code><span class=\"tok-com\">\/\/ Deixa a barra fora das p\u00e1ginas e mant\u00e9m no resto.<\/span>\n<span class=\"tok-fn\">add_filter<\/span>( <span class=\"tok-str\">'publish_from_preview_show_bar'<\/span>, <span class=\"tok-fn\">function<\/span> ( <span class=\"tok-var\">$show<\/span>, <span class=\"tok-var\">$post<\/span> ) {\n\t<span class=\"tok-fn\">return<\/span> <span class=\"tok-str\">'page'<\/span> === <span class=\"tok-var\">$post<\/span>-&gt;post_type ? <span class=\"tok-fn\">false<\/span> : <span class=\"tok-var\">$show<\/span>;\n}, 10, 2 );<\/code><\/pre>\n\t\t\t\t<\/article>\n\n\t\t\t\t<article class=\"hook\">\n\t\t\t\t\t<div class=\"hook-head\">\n\t\t\t\t\t\t<h3 class=\"hook-name\">publish_from_preview_statuses<\/h3>\n\t\t\t\t\t\t<span class=\"hook-kind\">Filtro<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"hook-body\">\n\t\t\t\t\t\t<p>Os status de post que recebem o bot\u00e3o Publicar. O padr\u00e3o \u00e9 <code>draft<\/code>, <code>pending<\/code> e <code>future<\/code>.<\/p>\n\t\t\t\t\t<\/div>\n<pre><code><span class=\"tok-com\">\/\/ S\u00f3 rascunhos \u2014 pendentes ficam para um editor aprovar.<\/span>\n<span class=\"tok-fn\">add_filter<\/span>( <span class=\"tok-str\">'publish_from_preview_statuses'<\/span>, <span class=\"tok-fn\">function<\/span> () {\n\t<span class=\"tok-fn\">return<\/span> <span class=\"tok-fn\">array<\/span>( <span class=\"tok-str\">'draft'<\/span> );\n} );<\/code><\/pre>\n\t\t\t\t<\/article>\n\n\t\t\t\t<article class=\"hook\">\n\t\t\t\t\t<div class=\"hook-head\">\n\t\t\t\t\t\t<h3 class=\"hook-name\">publish_from_preview_update_date<\/h3>\n\t\t\t\t\t\t<span class=\"hook-kind\">Filtro<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"hook-body\">\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tRecebe <code>( bool $move_date, WP_Post $post )<\/code>. O padr\u00e3o \u00e9\n\t\t\t\t\t\t\t<code>false<\/code>, ent\u00e3o o post mant\u00e9m a data dele. Retorne <code>true<\/code> para\n\t\t\t\t\t\t\tmarcar cada post com o momento em que foi publicado. Um post que j\u00e1 estava agendado\n\t\t\t\t\t\t\tmove a data para agora, independente do que este filtro retornar.\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n<pre><code><span class=\"tok-com\">\/\/ Datar cada post no momento em que foi publicado.<\/span>\n<span class=\"tok-fn\">add_filter<\/span>( <span class=\"tok-str\">'publish_from_preview_update_date'<\/span>, <span class=\"tok-str\">'__return_true'<\/span> );<\/code><\/pre>\n\t\t\t\t<\/article>\n\n\t\t\t\t<article class=\"hook\">\n\t\t\t\t\t<div class=\"hook-head\">\n\t\t\t\t\t\t<h3 class=\"hook-name\">publish_from_preview_confirm<\/h3>\n\t\t\t\t\t\t<span class=\"hook-kind\">Filtro<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"hook-body\">\n\t\t\t\t\t\t<p>Se deve perguntar antes de publicar. O padr\u00e3o \u00e9 <code>true<\/code>.<\/p>\n\t\t\t\t\t<\/div>\n<pre><code><span class=\"tok-com\">\/\/ Publica no primeiro clique, sem perguntar.<\/span>\n<span class=\"tok-fn\">add_filter<\/span>( <span class=\"tok-str\">'publish_from_preview_confirm'<\/span>, <span class=\"tok-str\">'__return_false'<\/span> );<\/code><\/pre>\n\t\t\t\t<\/article>\n\n\t\t\t\t<article class=\"hook\">\n\t\t\t\t\t<div class=\"hook-head\">\n\t\t\t\t\t\t<h3 class=\"hook-name\">publish_from_preview_published<\/h3>\n\t\t\t\t\t\t<span class=\"hook-kind\">Action<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"hook-body\">\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\tDispara depois que o plugin publica um post, com\n\t\t\t\t\t\t\t<code>( int $post_id, string $new_status )<\/code>. O status \u00e9 <code>publish<\/code> ou\n\t\t\t\t\t\t\t<code>future<\/code>, ent\u00e3o voc\u00ea consegue distinguir uma publica\u00e7\u00e3o de um agendamento.\n\t\t\t\t\t\t<\/p>\n\t\t\t\t\t<\/div>\n<pre><code><span class=\"tok-com\">\/\/ Avisa o canal da equipe, mas s\u00f3 quando o post foi ao ar.<\/span>\n<span class=\"tok-fn\">add_action<\/span>( <span class=\"tok-str\">'publish_from_preview_published'<\/span>, <span class=\"tok-fn\">function<\/span> ( <span class=\"tok-var\">$post_id<\/span>, <span class=\"tok-var\">$new_status<\/span> ) {\n\t<span class=\"tok-fn\">if<\/span> ( <span class=\"tok-str\">'publish'<\/span> !== <span class=\"tok-var\">$new_status<\/span> ) {\n\t\t<span class=\"tok-fn\">return<\/span>;\n\t}\n\n\tmeu_aviso_equipe( <span class=\"tok-fn\">get_permalink<\/span>( <span class=\"tok-var\">$post_id<\/span> ) );\n}, 10, 2 );<\/code><\/pre>\n\t\t\t\t<\/article>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/section>\n\n\t<section id=\"privacy\">\n\t\t<div class=\"wrap\">\n\t\t\t<div class=\"panel\">\n\t\t\t\t<p class=\"eyebrow\" style=\"color:#94a3b8\">Privacidade<\/p>\n\t\t\t\t<h2>Ele n\u00e3o liga para casa<\/h2>\n\t\t\t\t<p style=\"margin-top:14px;max-width:62ch\">\n\t\t\t\t\tN\u00e3o h\u00e1 analytics, nem relat\u00f3rio de uso, nem verifica\u00e7\u00e3o de licen\u00e7a, nem requisi\u00e7\u00e3o remota\n\t\t\t\t\tde nenhum tipo. O plugin conversa com a sua pr\u00f3pria instala\u00e7\u00e3o do WordPress e com mais\n\t\t\t\t\tnada.\n\t\t\t\t<\/p>\n\n\t\t\t\t<ul class=\"claims\">\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n\t\t\t\t\t\t<span>Nenhum dado pessoal \u00e9 coletado, armazenado ou transmitido.<\/span>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n\t\t\t\t\t\t<span>Nenhuma requisi\u00e7\u00e3o HTTP externa, nenhum script ou fonte de terceiros.<\/span>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n\t\t\t\t\t\t<span>Nenhum cookie pr\u00f3prio e nenhum rastreio de quem clica no qu\u00ea.<\/span>\n\t\t\t\t\t<\/li>\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<svg class=\"icon\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"><path d=\"M20 6 9 17l-5-5\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path><\/svg>\n\t\t\t\t\t\t<span>Nenhuma op\u00e7\u00e3o e nenhuma tabela no banco \u2014 desinstalar n\u00e3o deixa res\u00edduo.<\/span>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/section>\n\n\t<section id=\"support\">\n\t\t<div class=\"wrap split\">\n\t\t\t<div>\n\t\t\t\t<div class=\"section-head\">\n\t\t\t\t\t<p class=\"eyebrow\">Suporte<\/p>\n\t\t\t\t\t<h2>D\u00favidas e relatos de bug<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<p>\n\t\t\t\t\tO suporte acontece em aberto, no f\u00f3rum do pr\u00f3prio plugin no WordPress.org. Postar l\u00e1 em\n\t\t\t\t\tvez de mandar e-mail faz a resposta servir para a pr\u00f3xima pessoa com a mesma d\u00favida.\n\t\t\t\t<\/p>\n\t\t\t\t<p style=\"margin-top:18px\">\n\t\t\t\t\t<a class=\"btn\" href=\"https:\/\/wordpress.org\/support\/plugin\/publish-from-preview\/\">\n\t\t\t\t\t\tAbrir o f\u00f3rum de suporte\n\t\t\t\t\t\t<svg class=\"icon\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t<path d=\"M5 12h14M13 6l6 6-6 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/p>\n\t\t\t\t<p style=\"margin-top:20px;font-size:0.92rem;color:var(--muted)\">\n\t\t\t\t\tAo relatar um problema, a vers\u00e3o do WordPress, a vers\u00e3o do PHP e o tema que voc\u00ea usa\n\t\t\t\t\trespondem a maior parte da primeira rodada de perguntas.\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\n\t\t\t<div>\n\t\t\t\t<div class=\"section-head\">\n\t\t\t\t\t<p class=\"eyebrow\">Licen\u00e7a<\/p>\n\t\t\t\t\t<h2>GPLv2 ou posterior<\/h2>\n\t\t\t\t<\/div>\n\t\t\t\t<p>\n\t\t\t\t\tSoftware livre. Voc\u00ea pode usar, ler, modificar e redistribuir sob a\n\t\t\t\t\t<a href=\"https:\/\/www.gnu.org\/licenses\/gpl-2.0.html\">GNU General Public License, vers\u00e3o 2<\/a>\n\t\t\t\t\tou, se preferir, qualquer vers\u00e3o posterior. Sem nenhuma garantia.\n\t\t\t\t<\/p>\n\t\t\t\t<dl class=\"meta-list\" style=\"margin-top:22px\">\n\t\t\t\t\t<div><dt>Vers\u00e3o<\/dt><dd>1.1.1<\/dd><\/div>\n\t\t\t\t\t<div><dt>Requer WordPress<\/dt><dd>6.0 ou superior<\/dd><\/div>\n\t\t\t\t\t<div><dt>Requer PHP<\/dt><dd>7.4 ou superior<\/dd><\/div>\n\t\t\t\t\t<div><dt>Licen\u00e7a<\/dt><dd>GPL\u20112.0\u2011or\u2011later<\/dd><\/div>\n\t\t\t\t\t<div><dt>Autor<\/dt><dd>Edson<\/dd><\/div>\n\t\t\t\t<\/dl>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/section>\n\n\t<section id=\"changelog\">\n\t\t<div class=\"wrap\">\n\t\t\t<div class=\"section-head\">\n\t\t\t\t<p class=\"eyebrow\">Changelog<\/p>\n\t\t\t\t<h2>O que mudou<\/h2>\n\t\t\t\t<p class=\"lede\">\n\t\t\t\t\tO hist\u00f3rico completo fica na\n\t\t\t\t\t<a href=\"https:\/\/wordpress.org\/plugins\/publish-from-preview\/#developers\">p\u00e1gina de desenvolvimento do plugin<\/a>.\n\t\t\t\t<\/p>\n\t\t\t<\/div>\n\n\t\t\t<ol class=\"changelog\">\n\t\t\t\t<li>\n\t\t\t\t\t<span class=\"ver\">1.1.1<\/span>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>Corre\u00e7\u00e3o: publicar pela pr\u00e9via sobrescrevia a data do post com a hora atual. Agora o post mant\u00e9m a data dele, que \u00e9 o que o bot\u00e3o Publicar do editor faz.<\/li>\n\t\t\t\t\t\t<li>Corre\u00e7\u00e3o: um rascunho com data futura podia ser publicado na hora em vez de agendado.<\/li>\n\t\t\t\t\t\t<li>O filtro <code>publish_from_preview_update_date<\/code> passa a ter <code>false<\/code> como padr\u00e3o.<\/li>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/li>\n\t\t\t\t<li>\n\t\t\t\t\t<span class=\"ver\">1.1.0<\/span>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>A confirma\u00e7\u00e3o no post rec\u00e9m-publicado passa a levar de volta aos rascunhos que ainda esperam, com a contagem.<\/li>\n\t\t\t\t\t\t<li>Essa confirma\u00e7\u00e3o espera ser fechada em vez de desaparecer sozinha, ent\u00e3o o link continua ao alcance.<\/li>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/li>\n\t\t\t\t<li>\n\t\t\t\t\t<span class=\"ver\">1.0.0<\/span>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>Primeira vers\u00e3o.<\/li>\n\t\t\t\t\t<\/ul>\n\t\t\t\t<\/li>\n\t\t\t<\/ol>\n\t\t<\/div>\n\t<\/section>\n\n<\/main>\n\n<footer class=\"foot\">\n\t<div class=\"wrap foot-row\">\n\t\t<p>\n\t\t\tPublish from Preview \u2014 um plugin para WordPress feito por\n\t\t\t<a href=\"https:\/\/wp.blog.br\/\">Edson<\/a>. Distribu\u00eddo sob a GPLv2 ou posterior.\n\t\t<\/p>\n\t\t<p class=\"foot-links\">\n\t\t\t<a href=\"https:\/\/wordpress.org\/plugins\/publish-from-preview\/\">Diret\u00f3rio de plugins<\/a>\n\t\t\t<a href=\"https:\/\/wordpress.org\/support\/plugin\/publish-from-preview\/\">Suporte<\/a>\n\t\t\t<a href=\"index.html\" hreflang=\"en\" lang=\"en\">English<\/a>\n\t\t<\/p>\n\t<\/div>\n<\/footer>\n","protected":false},"excerpt":{"rendered":"<p>Publish from Preview O que faz Instala\u00e7\u00e3o Funcionamento Desenvolvedores Suporte EN PT\u2011BR Revisou, publicou, pr\u00f3ximo. Um bot\u00e3o Publicar na pr\u00f3pria tela de pr\u00e9-visualiza\u00e7\u00e3o. Leia o rascunho como os seus leitores v\u00e3o ler, publique dali mesmo e v\u00e1 direto para o pr\u00f3ximo \u2014 sem passar pelo editor s\u00f3 para mudar o status. Gratuito e GPLv2+ WordPress [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-blank.php","meta":{"footnotes":""},"class_list":["post-13","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/pages\/13","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=13"}],"version-history":[{"count":6,"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/pages\/13\/revisions"}],"predecessor-version":[{"id":21,"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/pages\/13\/revisions\/21"}],"wp:attachment":[{"href":"https:\/\/edsonvieirademetrio.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=13"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}