var
/
www
/
html
/
servotec-doerpen
/
wp-includes
/
blocks
| uid:33
legacy-widget.php
[X]
<?php /** * Server-side rendering of the `core/legacy-widget` block. * * @package WordPress */ /** * Renders the 'core/legacy-widget' block. * * @since 5.8.0 * * @global WP_Widget_Factory $wp_widget_factory. * * @param array $attributes The block attributes. * * @return string Rendered block. */ function render_block_core_legacy_widget( $attributes ) { global $wp_widget_factory; if ( isset( $attributes['id'] ) ) { $sidebar_id = wp_find_widgets_sidebar( $attributes['id'] ); return wp_render_widget( $attributes['id'], $sidebar_id ); } if ( ! isset( $attributes['idBase'] ) ) { return ''; } $id_base = $attributes['idBase']; $widget_key = $wp_widget_factory->get_widget_key( $id_base ); $widget_object = $wp_widget_factory->get_widget_object( $id_base ); if ( ! $widget_key || ! $widget_object ) { return ''; } if ( isset( $attributes['instance']['encoded'], $attributes['instance']['hash'] ) ) { $serialized_instance = base64_decode( $attributes['instance']['encoded'] ); if ( ! hash_equals( wp_hash( $serialized_instance ), (string) $attributes['instance']['hash'] ) ) { return ''; } $instance = unserialize( $serialized_instance ); } else { $instance = array(); } $args = array( 'widget_id' => $widget_object->id, 'widget_name' => $widget_object->name, ); ob_start(); the_widget( $widget_key, $instance, $args ); return ob_get_clean(); } /** * Registers the 'core/legacy-widget' block. * * @since 5.8.0 */ function register_block_core_legacy_widget() { register_block_type_from_metadata( __DIR__ . '/legacy-widget', array( 'render_callback' => 'render_block_core_legacy_widget', ) ); } add_action( 'init', 'register_block_core_legacy_widget' ); /** * Intercepts any request with legacy-widget-preview in the query param and, if * set, renders a page containing a preview of the requested Legacy Widget * block. * * @since 5.8.0 */ function handle_legacy_widget_preview_iframe() { if ( empty( $_GET['legacy-widget-preview'] ) ) { return; } if ( ! current_user_can( 'edit_theme_options' ) ) { return; } define( 'IFRAME_REQUEST', true ); ?> <!doctype html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="profile" href="https://gmpg.org/xfn/11" /> <?php wp_head(); ?> <style> /* Reset theme styles */ html, body, #page, #content { padding: 0 !important; margin: 0 !important; } /* Hide root level text nodes */ body { font-size: 0 !important; } /* Hide non-widget elements */ body *:not(#page):not(#content):not(.widget):not(.widget *) { display: none !important; font-size: 0 !important; height: 0 !important; left: -9999px !important; max-height: 0 !important; max-width: 0 !important; opacity: 0 !important; pointer-events: none !important; position: absolute !important; top: -9999px !important; transform: translate(-9999px, -9999px) !important; visibility: hidden !important; z-index: -999 !important; } /* Restore widget font-size */ .widget { font-size: var(--global--font-size-base); } </style> </head> <body <?php body_class(); ?>> <div id="page" class="site"> <div id="content" class="site-content"> <?php $registry = WP_Block_Type_Registry::get_instance(); $block = $registry->get_registered( 'core/legacy-widget' ); echo $block->render( $_GET['legacy-widget-preview'] ); ?> </div><!-- #content --> </div><!-- #page --> <?php wp_footer(); ?> </body> </html> <?php exit; } // Use admin_init instead of init to ensure get_current_screen function is already available. // This isn't strictly required, but enables better compatibility with existing plugins. // See: https://github.com/WordPress/gutenberg/issues/32624. add_action( 'admin_init', 'handle_legacy_widget_preview_iframe', 20 );
accordion/
-
O
R
D
accordion-heading/
-
O
R
D
accordion-item/
-
O
R
D
accordion-panel/
-
O
R
D
archives/
-
O
R
D
audio/
-
O
R
D
avatar/
-
O
R
D
block/
-
O
R
D
breadcrumbs/
-
O
R
D
button/
-
O
R
D
buttons/
-
O
R
D
calendar/
-
O
R
D
categories/
-
O
R
D
code/
-
O
R
D
column/
-
O
R
D
columns/
-
O
R
D
comment-author-name/
-
O
R
D
comment-content/
-
O
R
D
comment-date/
-
O
R
D
comment-edit-link/
-
O
R
D
comment-reply-link/
-
O
R
D
comment-template/
-
O
R
D
comments/
-
O
R
D
comments-pagination/
-
O
R
D
comments-pagination-next/
-
O
R
D
comments-pagination-numbers/
-
O
R
D
comments-pagination-previous/
-
O
R
D
comments-title/
-
O
R
D
cover/
-
O
R
D
details/
-
O
R
D
embed/
-
O
R
D
file/
-
O
R
D
footnotes/
-
O
R
D
freeform/
-
O
R
D
gallery/
-
O
R
D
group/
-
O
R
D
heading/
-
O
R
D
home-link/
-
O
R
D
html/
-
O
R
D
icon/
-
O
R
D
image/
-
O
R
D
latest-comments/
-
O
R
D
latest-posts/
-
O
R
D
legacy-widget/
-
O
R
D
list/
-
O
R
D
list-item/
-
O
R
D
loginout/
-
O
R
D
math/
-
O
R
D
media-text/
-
O
R
D
missing/
-
O
R
D
more/
-
O
R
D
navigation/
-
O
R
D
navigation-link/
-
O
R
D
navigation-overlay-close/
-
O
R
D
navigation-submenu/
-
O
R
D
nextpage/
-
O
R
D
page-list/
-
O
R
D
page-list-item/
-
O
R
D
paragraph/
-
O
R
D
pattern/
-
O
R
D
post-author/
-
O
R
D
post-author-biography/
-
O
R
D
post-author-name/
-
O
R
D
post-comments-count/
-
O
R
D
post-comments-form/
-
O
R
D
post-comments-link/
-
O
R
D
post-content/
-
O
R
D
post-date/
-
O
R
D
post-excerpt/
-
O
R
D
post-featured-image/
-
O
R
D
post-navigation-link/
-
O
R
D
post-template/
-
O
R
D
post-terms/
-
O
R
D
post-time-to-read/
-
O
R
D
post-title/
-
O
R
D
preformatted/
-
O
R
D
pullquote/
-
O
R
D
query/
-
O
R
D
query-no-results/
-
O
R
D
query-pagination/
-
O
R
D
query-pagination-next/
-
O
R
D
query-pagination-numbers/
-
O
R
D
query-pagination-previous/
-
O
R
D
query-title/
-
O
R
D
query-total/
-
O
R
D
quote/
-
O
R
D
read-more/
-
O
R
D
rss/
-
O
R
D
search/
-
O
R
D
separator/
-
O
R
D
shortcode/
-
O
R
D
site-logo/
-
O
R
D
site-tagline/
-
O
R
D
site-title/
-
O
R
D
social-link/
-
O
R
D
social-links/
-
O
R
D
spacer/
-
O
R
D
table/
-
O
R
D
tag-cloud/
-
O
R
D
template-part/
-
O
R
D
term-count/
-
O
R
D
term-description/
-
O
R
D
term-name/
-
O
R
D
term-template/
-
O
R
D
terms-query/
-
O
R
D
text-columns/
-
O
R
D
verse/
-
O
R
D
video/
-
O
R
D
widget-group/
-
O
R
D
accordion-item.php
3K
V
E
R
D
accordion.php
1.1K
V
E
R
D
categories.php
4.8K
V
E
R
D
comments-pagination-numbers.php
1.6K
V
E
R
D
cover.php
7.2K
V
E
R
D
details.php
1.5K
V
E
R
D
home-link.php
5.3K
V
E
R
D
legacy-widget.php
3.9K
V
E
R
D
media-text.php
4.2K
V
E
R
D
page-list-item.php
361
V
E
R
D
page-list.php
14.7K
V
E
R
D
post-author-biography.php
1.5K
V
E
R
D
post-author-name.php
1.9K
V
E
R
D
post-featured-image.php
9K
V
E
R
D
post-time-to-read.php
6.3K
V
E
R
D
query-no-results.php
1.8K
V
E
R
D
query-pagination-numbers.php
4.6K
V
E
R
D
search.php
23.3K
V
E
R
D
site-logo.php
6.2K
V
E
R
D
site-tagline.php
1.2K
V
E
R
D
site-title.php
1.8K
V
E
R
D
social-link.php
66K
V
E
R
D
tag-cloud.php
1.6K
V
E
R
D