{"id":14,"date":"2026-09-10T17:45:39","date_gmt":"2026-09-10T17:45:39","guid":{"rendered":"https:\/\/wpshark.xyz\/ohara\/?page_id=14"},"modified":"2026-09-12T15:31:52","modified_gmt":"2026-09-12T15:31:52","slug":"youtube-feed-plugin-features","status":"publish","type":"page","link":"https:\/\/wpshark.xyz\/ohara\/youtube-feed-plugin-features\/","title":{"rendered":"Features"},"content":{"rendered":"\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase\">YouTube feed plugin features<\/p>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(2rem, 5vw, 3.2rem);line-height:1.2\">Everything Ohara does, on one page.<\/h1>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">This YouTube feed plugin features page walks through every capability in Ohara, in the order you would actually meet it. The visual builder, the five layouts, the feed sources, the caching layer and the developer surface \u2014 all explained below.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-c126b804 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-white-color has-vivid-cyan-blue-background-color has-text-color has-background wp-element-button\" href=\"https:\/\/wordpress.org\/plugins\/ohara-feed-builder-for-youtube\/\" style=\"border-radius:4px\" target=\"_blank\" rel=\"noopener\">Download Free<\/a><\/div>\n\n\n\n<div class=\"wp-block-button is-style-outline is-style-outline--1\"><a class=\"wp-block-button__link has-vivid-cyan-blue-color has-text-color wp-element-button\" href=\"https:\/\/wordpress.org\/plugins\/ohara-feed-builder-for-youtube\/?preview=1\" style=\"border-radius:4px\" target=\"_blank\" rel=\"noopener\">Try the live demo<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px\">Free core, forever \u00b7 Works with any theme \u00b7 No page builder required<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase\">The Builder<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.8rem, 4vw, 2.6rem);line-height:1.2\">YouTube feed plugin features: a four-step wizard, then a live editor.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">No blank canvas and no attribute reference open in another tab. Answer four questions and you have a feed; refine it in a two-pane editor that updates as you type. These are the first YouTube feed plugin features you meet.<\/p>\n\n\n\n<div class=\"wp-block-group is-style-default has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:40px\">\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\"><br><span style=\"background:#f0f0f0;padding:8px 20px;border-radius:30px;display:inline-block;margin:5px;\">1. Type<\/span><span style=\"color:#888;font-weight:300;margin:0 4px;\">\u2192<\/span><span style=\"background:#f0f0f0;padding:8px 20px;border-radius:30px;display:inline-block;margin:5px;\">2. Source<\/span><span style=\"color:#888;font-weight:300;margin:0 4px;\">\u2192<\/span><span style=\"background:#f0f0f0;padding:8px 20px;border-radius:30px;display:inline-block;margin:5px;\">3. Layout<\/span><span style=\"color:#888;font-weight:300;margin:0 4px;\">\u2192<\/span><span style=\"background:#f0f0f0;padding:8px 20px;border-radius:30px;display:inline-block;margin:5px;\">4. Review<\/span><br><\/p>\n\n\n\n<div data-wp-context=\"{&quot;tabsId&quot;:&quot;tabs_2&quot;,&quot;activeTabIndex&quot;:0}\" data-wp-init=\"callbacks.onTabsInit\" data-wp-interactive=\"core\/tabs\" data-wp-on--keydown=\"actions.handleTabKeyDown\" class=\"wp-block-tabs is-layout-flow wp-block-tabs-is-layout-flow\">\n<div aria-label=\"Tabbed content\" role=\"tablist\" class=\"wp-block-tab-list is-layout-flex wp-block-tab-list-is-layout-flex\"><button aria-controls=\"tabs_2-tab-0\" data-wp-bind--aria-selected=\"state.isActiveTab\" data-wp-bind--tabindex=\"state.tabIndexAttribute\" data-wp-context=\"{&quot;tabIndex&quot;:0}\" data-wp-on--click=\"actions.handleTabClick\" data-wp-on--keydown=\"actions.handleTabKeyDown\" id=\"tab__tabs_2-tab-0\" type=\"button\" role=\"tab\">Type<\/button><button aria-controls=\"tabs_2-tab-1\" data-wp-bind--aria-selected=\"state.isActiveTab\" data-wp-bind--tabindex=\"state.tabIndexAttribute\" data-wp-context=\"{&quot;tabIndex&quot;:1}\" data-wp-on--click=\"actions.handleTabClick\" data-wp-on--keydown=\"actions.handleTabKeyDown\" id=\"tab__tabs_2-tab-1\" type=\"button\" role=\"tab\">Source<\/button><button aria-controls=\"tabs_2-tab-2\" data-wp-bind--aria-selected=\"state.isActiveTab\" data-wp-bind--tabindex=\"state.tabIndexAttribute\" data-wp-context=\"{&quot;tabIndex&quot;:2}\" data-wp-on--click=\"actions.handleTabClick\" data-wp-on--keydown=\"actions.handleTabKeyDown\" id=\"tab__tabs_2-tab-2\" type=\"button\" role=\"tab\">Layout<\/button><button aria-controls=\"tabs_2-tab-3\" data-wp-bind--aria-selected=\"state.isActiveTab\" data-wp-bind--tabindex=\"state.tabIndexAttribute\" data-wp-context=\"{&quot;tabIndex&quot;:3}\" data-wp-on--click=\"actions.handleTabClick\" data-wp-on--keydown=\"actions.handleTabKeyDown\" id=\"tab__tabs_2-tab-3\" type=\"button\" role=\"tab\">Review<\/button><\/div>\n\n\n\n<div class=\"wp-block-tab-panels\">\n<section hidden aria-labelledby=\"tab__tabs_2-tab-0\" data-wp-bind--hidden=\"!state.isActiveTab\" id=\"tabs_2-tab-0\" role=\"tabpanel\" tabindex=\"0\" class=\"wp-block-tab-panel is-layout-flow wp-block-tab-panel-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Pick what the feed is made of<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Channel, playlist, search, live streams or a hand-picked set of videos. The free version covers channels; the rest unlock with Pro.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"203\" src=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-1024x203.png\" alt=\"YouTube feed plugin features \u2014 four-step visual builder preview\" class=\"wp-image-28\" srcset=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-1024x203.png 1024w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-300x59.png 300w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-764x151.png 764w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image.png 1158w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/section>\n\n\n\n<section hidden aria-labelledby=\"tab__tabs_2-tab-1\" data-wp-bind--hidden=\"!state.isActiveTab\" id=\"tabs_2-tab-1\" role=\"tabpanel\" tabindex=\"0\" class=\"wp-block-tab-panel is-layout-flow wp-block-tab-panel-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Point it at a channel<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Paste a channel URL or handle. Ohara resolves it through the YouTube Data API using your own key, so the requests, the quota and the terms stay yours<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"179\" src=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-1-1024x179.png\" alt=\"YouTube feed plugin features \u2014 channel source step\" class=\"wp-image-29\" srcset=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-1-1024x179.png 1024w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-1-300x53.png 300w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-1-765x134.png 765w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-1.png 1159w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/section>\n\n\n\n<section hidden aria-labelledby=\"tab__tabs_2-tab-2\" data-wp-bind--hidden=\"!state.isActiveTab\" id=\"tabs_2-tab-2\" role=\"tabpanel\" tabindex=\"0\" class=\"wp-block-tab-panel is-layout-flow wp-block-tab-panel-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Choose how it looks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Grid, list or masonry in the free version; carousel and gallery with Pro. Switch layouts whenever you like \u2014 your source and settings come with you.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"196\" src=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-2-1024x196.png\" alt=\"YouTube feed plugin features \u2014 layout selection step\" class=\"wp-image-30\" srcset=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-2-1024x196.png 1024w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-2-300x57.png 300w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-2-764x146.png 764w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-2.png 1162w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/section>\n\n\n\n<section hidden aria-labelledby=\"tab__tabs_2-tab-3\" data-wp-bind--hidden=\"!state.isActiveTab\" id=\"tabs_2-tab-3\" role=\"tabpanel\" tabindex=\"0\" class=\"wp-block-tab-panel is-layout-flow wp-block-tab-panel-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Check it, then embed it<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A final pass over everything you picked, with the preview beside it. Save, copy the shortcode, and drop the feed wherever you need it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"162\" src=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-3-1024x162.png\" alt=\"YouTube feed plugin features \u2014 final review step\" class=\"wp-image-31\" srcset=\"https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-3-1024x162.png 1024w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-3-300x47.png 300w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-3-765x121.png 765w, https:\/\/wpshark.xyz\/ohara\/wp-content\/uploads\/sites\/3\/2026\/09\/image-3.png 1169w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/section>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase\">Layouts<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.8rem, 4vw, 2.6rem);line-height:1.2\">Five layouts. One feed.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">Change the shape without rebuilding anything. Your channel, your settings and your styling all carry over \u2014 another of the YouTube feed plugin features most plugins get wrong.<\/p>\n\n\n\n<div class=\"wp-block-group is-horizontal is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ac2b36e2 wp-block-group-is-layout-flex\" style=\"margin-top:30px\">\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);font-weight:500\">\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Grid<\/span>\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">List<\/span>\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Masonry<\/span>\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Carousel<\/span>\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Gallery<\/span>\n<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:50px\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14.642px, 0.915rem + ((1vw - 3.2px) * 0.721), 22px);font-weight:700\">Grid<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">The default. Even columns that collapse cleanly from three to two to one as the viewport narrows.<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.098), 15px);font-style:italic\">Locked layouts still preview here \u2014 you can see exactly what Pro adds before you decide.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase\">Feed types<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.8rem, 4vw, 2.6rem);line-height:1.2\">Start with a channel. Grow into everything else.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">The free plugin does the job most sites need. Pro adds the sources you reach for once one feed is not enough \u2014 these YouTube feed plugin features matter when you scale past a single channel.<\/p>\n\n\n\n<div class=\"wp-block-group is-horizontal is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ac2b36e2 wp-block-group-is-layout-flex\" style=\"margin-top:30px\">\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);font-weight:500\">\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Channel<\/span>\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Live streams<\/span>\n<span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Single videos<\/span>\n<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-ef5aae2f wp-block-columns-is-layout-flex\" style=\"margin-top:40px\">\n<div class=\"wp-block-column has-border-color has-contrast-border-color is-layout-flow wp-block-column-is-layout-flow\" style=\"border-width:1px;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\"><div class=\"wp-block-icon\"><svg style=\"background-color:var(--wp--preset--color--accent-5);border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-width:1px;width:50px;padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);\" aria-hidden=\"true\" class=\"has-background has-accent-5-background-color has-border-color has-contrast-border-color is-flip-horizontal\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\">\n\t<path d=\"M18 4h-7c-1.1 0-2 .9-2 2v3H6c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h7c1.1 0 2-.9 2-2v-3h3c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4.5 14c0 .3-.2.5-.5.5H6c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h3V13c0 1.1.9 2 2 2h2.5v3zm0-4.5H11c-.3 0-.5-.2-.5-.5v-2.5H13c.3 0 .5.2.5.5v2.5zm5-.5c0 .3-.2.5-.5.5h-3V11c0-1.1-.9-2-2-2h-2.5V6c0-.3.2-.5.5-.5h7c.3 0 .5.2.5.5v7z\" \/>\n<\/svg>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.588), 20px);font-weight:700\">Shortcode roulette<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">Change an attribute, save, refresh, squint, repeat. You are designing blind in a form field, guessing what a column count and a handful of toggles will actually look like.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-border-color has-contrast-border-color is-layout-flow wp-block-column-is-layout-flow\" style=\"border-width:1px;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)\"><div class=\"wp-block-icon\"><svg style=\"background-color:var(--wp--preset--color--accent-5);border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-width:1px;width:50px;padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);\" aria-hidden=\"true\" class=\"has-background has-accent-5-background-color has-border-color has-contrast-border-color is-flip-horizontal\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\">\n\t<path fill-rule=\"evenodd\" d=\"M12 3.176l6.75 3.068v4.574c0 3.9-2.504 7.59-6.035 8.755a2.283 2.283 0 01-1.43 0c-3.53-1.164-6.035-4.856-6.035-8.755V6.244L12 3.176zM6.75 7.21v3.608c0 3.313 2.145 6.388 5.005 7.33.159.053.331.053.49 0 2.86-.942 5.005-4.017 5.005-7.33V7.21L12 4.824 6.75 7.21z\" \/>\n<\/svg>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.588), 20px);font-weight:700\">Invisible to Google<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">A feed that renders after page load is not in your HTML. Crawlers index an empty container, and visitors without JavaScript see nothing at all.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-border-color has-contrast-border-color is-layout-flow wp-block-column-is-layout-flow\" style=\"border-width:1px;border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--50)\"><div class=\"wp-block-icon\"><svg style=\"background-color:var(--wp--preset--color--accent-5);border-top-left-radius:6px;border-top-right-radius:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-width:1px;width:50px;padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);\" aria-hidden=\"true\" class=\"has-background has-accent-5-background-color has-border-color has-contrast-border-color is-flip-horizontal\" focusable=\"false\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\">\n\t<path d=\"M12 15.8c-3.7 0-6.8-3-6.8-6.8s3-6.8 6.8-6.8c3.7 0 6.8 3 6.8 6.8s-3.1 6.8-6.8 6.8zm0-12C9.1 3.8 6.8 6.1 6.8 9s2.4 5.2 5.2 5.2c2.9 0 5.2-2.4 5.2-5.2S14.9 3.8 12 3.8zM8 17.5h8V19H8zM10 20.5h4V22h-4z\" \/>\n<\/svg>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.588), 20px);font-weight:700\">Quota burn<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">Every uncached page view is another call to the YouTube Data API. Traffic spikes, the daily quota runs out, and the feed goes blank.<\/p>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.098), 15px);font-style:italic\">Show what is live now and what is scheduled<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase\">Embed anywhere<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.8rem, 4vw, 2.6rem);line-height:1.2\">Build once. Embed everywhere.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">One feed, as many placements as you need. Edit it in one place and every embed updates with it.<\/p>\n\n\n\n<div class=\"wp-block-group is-horizontal is-content-justification-center is-layout-flex wp-container-core-group-is-layout-ac2b36e2 wp-block-group-is-layout-flex\" style=\"margin-top:30px\">\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);font-weight:500\"><span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Shortcode<\/span> <span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">Block<\/span> <span style=\"background:#e8e8e8;padding:6px 18px;border-radius:20px;display:inline-block;margin:4px;\">PHP<\/span> <\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:50px\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14.642px, 0.915rem + ((1vw - 3.2px) * 0.721), 22px);font-weight:700\">Block<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Search the inserter for&nbsp;<strong>Ohara YouTube Feed<\/strong>, drop it in, and choose a saved feed from the sidebar.<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.098), 15px);font-style:italic\">Inserter \u203a Ohara YouTube Feed<br>&nbsp;&nbsp;Feed: Channel \u2014 Grid \u2014 12 videos<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase\">Performance &amp; SEO<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.8rem, 4vw, 2.6rem);line-height:1.2\">YouTube feed plugin features: your videos are in the HTML, not injected after it.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">Ohara renders the feed in PHP first, so the markup that leaves your server already contains the videos. That single detail separates Ohara from JavaScript-only feeds, and it is one of the YouTube feed plugin features Google cares about most. React then hydrates it into an interactive app. Search engines and no\u2011JavaScript visitors get real content either way.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-be6affb7 wp-block-columns-is-layout-flex\" style=\"margin-top:40px\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">Key benefits<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Server\u2011rendered markup<\/strong> on the first byte<\/li>\n\n\n\n<li><strong>Hydrated into a React app<\/strong> after load<\/li>\n\n\n\n<li><strong>Responses cached<\/strong> with the WordPress Transients API<\/li>\n\n\n\n<li><strong>Cache lifetime you choose<\/strong>, per feed<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">Request flow<\/h4>\n\n\n\n<div class=\"wp-block-group has-f-6-f-7-f-7-background-color has-background is-vertical is-layout-flex wp-container-core-group-is-layout-f6d1adc9 wp-block-group-is-layout-flex\" style=\"border-radius:8px;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.098), 15px);\"><strong>Request<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Browser hydrates React<\/li>\n\n\n\n<li>PHP renders the videos into HTML<\/li>\n\n\n\n<li>Interactive<\/li>\n<\/ul>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px;font-style:italic\">No JavaScript? The videos are still visible.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-be6affb7 wp-block-columns-is-layout-flex\" style=\"margin-top:40px\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">Server\u2011rendered first<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">The feed markup is generated in PHP before the page is sent. Nothing waits on a script to appear.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">Cached via WordPress Transients<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">API responses are stored with the Transients API on a schedule you control, so ordinary traffic never touches your quota.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">Clear one feed, or all of them<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">Flush a single feed after an edit, or clear the whole cache from the dashboard when you want a clean slate.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(2rem, 4vw, 3rem);line-height:1.2\">Manage Everything<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.4rem, 3vw, 2rem);line-height:1.3\">One dashboard once you have more than one feed.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">Search, filter and sort every feed on the site. Duplicate, grab an embed code, or delete in bulk. See at a glance whether the API is healthy and which feeds have lost their source.<\/p>\n\n\n\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-42c9b54c wp-block-group-is-layout-flex\" style=\"margin-top:40px\">\n<ul class=\"wp-block-list\">\n<li><strong>\ud83d\udd0d Search, filter and sort all feeds<\/strong><\/li>\n\n\n\n<li><strong>\ud83c\udfe0 Bulk duplicate, embed and delete<\/strong><\/li>\n\n\n\n<li><strong>\ud83d\udcc4 API and system health at a glance<\/strong><\/li>\n\n\n\n<li><strong>\ud83c\udf10 Flags feeds that are missing a source<\/strong><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase\">Make It Yours<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.8rem, 4vw, 2.6rem);line-height:1.2\">It should look like your site, not like a plugin.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">Override the background, text and accent colours, switch the pieces you do not want off, and drop in your own CSS or JavaScript when you need the last five per cent. These are the YouTube feed plugin features that make a feed feel native.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-be6affb7 wp-block-columns-is-layout-flex\" style=\"margin-top:40px\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">Customization options<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Background, text and accent colour overrides<\/strong><\/li>\n\n\n\n<li><strong>Toggle<\/strong> the channel header, titles, dates and Subscribe button<\/li>\n\n\n\n<li><strong>Load More<\/strong> on or off<\/li>\n\n\n\n<li><strong>Custom CSS<\/strong> and <strong>custom JavaScript<\/strong> per feed<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-group has-f-6-f-7-f-7-background-color has-background is-layout-flow wp-block-group-is-layout-flow\" style=\"border-radius:10px;padding-top:25px;padding-right:25px;padding-bottom:25px;padding-left:25px\">\n<h5 class=\"wp-block-heading has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:600;letter-spacing:1px;text-transform:uppercase\">Appearance<\/h5>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-c59eb596 wp-block-group-is-layout-flex\" style=\"margin-top:15px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px;font-weight:500\">ACCENT COLOUR<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px\"><span style=\"display:inline-block;width:18px;height:18px;border-radius:4px;background:#2555eb;vertical-align:middle;margin-right:6px;\"><\/span> #2555eb<\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:15px;margin-bottom:15px\"\/>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-112d78c2 wp-block-group-is-layout-flex\" style=\"margin-top:10px;margin-bottom:10px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px\">Channel header<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:12px;font-weight:600;text-transform:uppercase\"><span style=\"background:#ddd;padding:2px 12px;border-radius:12px;\">Off<\/span><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-112d78c2 wp-block-group-is-layout-flex\" style=\"margin-top:10px;margin-bottom:10px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px\">Video titles<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:12px;font-weight:600;text-transform:uppercase\"><span style=\"background:#2555eb;color:white;padding:2px 12px;border-radius:12px;\">On<\/span><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-112d78c2 wp-block-group-is-layout-flex\" style=\"margin-top:10px;margin-bottom:10px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px\">Published dates<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:12px;font-weight:600;text-transform:uppercase\"><span style=\"background:#2555eb;color:white;padding:2px 12px;border-radius:12px;\">On<\/span><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-112d78c2 wp-block-group-is-layout-flex\" style=\"margin-top:10px;margin-bottom:10px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px\">Load More button<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:12px;font-weight:600;text-transform:uppercase\"><span style=\"background:#ddd;padding:2px 12px;border-radius:12px;\">Off<\/span><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-112d78c2 wp-block-group-is-layout-flex\" style=\"margin-top:10px;margin-bottom:10px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px\">Subscribe button<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:12px;font-weight:600;text-transform:uppercase\"><span style=\"background:#2555eb;color:white;padding:2px 12px;border-radius:12px;\">On<\/span><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" style=\"margin-top:15px;margin-bottom:15px\"\/>\n\n\n\n<div class=\"wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-b6908ba8 wp-block-group-is-layout-flex\" style=\"margin-top:10px\">\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:14px;font-weight:500\">Custom CSS<\/p>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:13px\"><span style=\"background:#2555eb;color:white;padding:4px 16px;border-radius:4px;display:inline-block;\">Edit<\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group alignfull is-layout-flow wp-block-group-is-layout-flow\" style=\"padding-top:60px;padding-right:20px;padding-bottom:60px;padding-left:20px\">\n<div class=\"wp-block-group alignwide has-global-padding is-content-justification-center is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 class=\"wp-block-heading has-text-align-center has-foreground-color has-text-color\" style=\"font-size:14px;font-weight:700;letter-spacing:2px;text-transform:uppercase\">For Developers<\/h2>\n\n\n\n<h3 class=\"wp-block-heading has-text-align-center\" style=\"font-size:clamp(1.8rem, 4vw, 2.6rem);line-height:1.2\">Allow\u2011lists, filters, and a REST namespace.<\/h3>\n\n\n\n<p class=\"has-text-align-center has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);\">Ohara is extensible on purpose \u2014 a YouTube feed plugin features set most competitors leave out entirely. Layouts and feed types are allow\u2011listed server side, and a filter is the supported way to add your own.<\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:40px\">\n<div class=\"wp-block-group has-f-0-f-0-f-0-background-color has-background is-vertical is-layout-flex wp-container-core-group-is-layout-f6d1adc9 wp-block-group-is-layout-flex\" style=\"border-radius:8px;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px\">\n<pre class=\"wp-block-code\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.098), 15px);\"><code>\/\/ REST namespace\nohara\/v1\n\n\/\/ Filters\nadd_filter( 'ohara_allowed_layouts', $fn );\nadd_filter( 'ohara_feed_layout_renderers', $fn );\nadd_filter( 'ohara_allowed_feed_types', $fn );\nadd_filter( 'ohara_feed_type_sources', $fn );<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-be6affb7 wp-block-columns-is-layout-flex\" style=\"margin-top:40px\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">ohara_allowed_layouts<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">Add a layout slug to the allow\u2011list, or take one away.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">ohara_feed_layout_renderers<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">Map a layout slug to the callable that renders it.<\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-531c78e0 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">ohara_allowed_feed_types<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">Register a feed type of your own, or restrict the ones on offer.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.392), 18px);font-weight:600\">ohara_feed_type_sources<\/h4>\n\n\n\n<p class=\"has-foreground-color has-text-color wp-block-paragraph\" style=\"font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.196), 16px);\">Describe where a feed type gets its videos from.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>YouTube feed plugin features Everything Ohara does, on one page. This YouTube feed plugin features page walks through every capability in Ohara, in the order you would actually meet it. The visual builder, the five layouts, the feed sources, the caching layer and the developer surface \u2014 all explained below. Free core, forever \u00b7 Works [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-14","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/pages\/14","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/comments?post=14"}],"version-history":[{"count":9,"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/pages\/14\/revisions"}],"predecessor-version":[{"id":52,"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/pages\/14\/revisions\/52"}],"wp:attachment":[{"href":"https:\/\/wpshark.xyz\/ohara\/wp-json\/wp\/v2\/media?parent=14"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}