H69UNtblNBNpha2dtB1Odn8qYp1Qk5NK2gi7yfceofo9N
/
home
/
ymswebso
/
public_html
/
applyworld
/
wp-includes
/
Nama File / Folder
Size
Action
ID3
--
NONE
IXR
--
NONE
PHPMailer
--
NONE
Requests
--
NONE
SimplePie
--
NONE
Text
--
NONE
assets
--
NONE
block-bindings
--
NONE
block-patterns
--
NONE
block-supports
--
NONE
blocks
--
NONE
certificates
--
NONE
css
--
NONE
customize
--
NONE
fonts
--
NONE
html-api
--
NONE
images
--
NONE
interactivity-api
--
NONE
js
--
NONE
l10n
--
NONE
php-compat
--
NONE
pomo
--
NONE
rest-api
--
NONE
sitemaps
--
NONE
sodium_compat
--
NONE
style-engine
--
NONE
theme-compat
--
NONE
widgets
--
NONE
admin-bar.php
36.23KB
Hapus
Edit
Rename
atomlib.php
11.795KB
Hapus
Edit
Rename
author-template.php
18.507KB
Hapus
Edit
Rename
block-bindings.php
5.463KB
Hapus
Edit
Rename
block-editor.php
27.676KB
Hapus
Edit
Rename
block-i18n.json
0.309KB
Hapus
Edit
Rename
block-patterns.php
12.812KB
Hapus
Edit
Rename
block-template-utils.php
58.735KB
Hapus
Edit
Rename
block-template.php
13.811KB
Hapus
Edit
Rename
bookmark.php
15.065KB
Hapus
Edit
Rename
cache-compat.php
5.829KB
Hapus
Edit
Rename
canonical.php
33.714KB
Hapus
Edit
Rename
capabilities.php
41.717KB
Hapus
Edit
Rename
category-template.php
55.667KB
Hapus
Edit
Rename
class-feed.php
0.526KB
Hapus
Edit
Rename
class-http.php
0.358KB
Hapus
Edit
Rename
class-oembed.php
0.392KB
Hapus
Edit
Rename
class-phpass.php
6.612KB
Hapus
Edit
Rename
class-phpmailer.php
0.648KB
Hapus
Edit
Rename
class-pop3.php
20.678KB
Hapus
Edit
Rename
class-requests.php
2.185KB
Hapus
Edit
Rename
class-simplepie.php
0.442KB
Hapus
Edit
Rename
class-snoopy.php
36.831KB
Hapus
Edit
Rename
class-walker-category-dropdown.php
2.411KB
Hapus
Edit
Rename
class-walker-category.php
8.278KB
Hapus
Edit
Rename
class-walker-comment.php
13.888KB
Hapus
Edit
Rename
class-walker-nav-menu.php
11.508KB
Hapus
Edit
Rename
class-walker-page-dropdown.php
2.646KB
Hapus
Edit
Rename
class-wp-admin-bar.php
17.455KB
Hapus
Edit
Rename
class-wp-ajax-response.php
5.143KB
Hapus
Edit
Rename
class-wp-application-passwords.php
15.251KB
Hapus
Edit
Rename
class-wp-block-bindings-source.php
2.922KB
Hapus
Edit
Rename
class-wp-block-editor-context.php
1.318KB
Hapus
Edit
Rename
class-wp-block-list.php
4.646KB
Hapus
Edit
Rename
class-wp-block-parser-block.php
2.495KB
Hapus
Edit
Rename
class-wp-block-parser-frame.php
1.97KB
Hapus
Edit
Rename
class-wp-block-parser.php
11.262KB
Hapus
Edit
Rename
class-wp-block-pattern-categories-registry.php
5.245KB
Hapus
Edit
Rename
class-wp-block-patterns-registry.php
10.53KB
Hapus
Edit
Rename
class-wp-block-styles-registry.php
6.115KB
Hapus
Edit
Rename
class-wp-block-supports.php
5.48KB
Hapus
Edit
Rename
class-wp-block-template.php
1.985KB
Hapus
Edit
Rename
class-wp-block-templates-registry.php
7.062KB
Hapus
Edit
Rename
class-wp-block-type-registry.php
4.896KB
Hapus
Edit
Rename
class-wp-block-type.php
16.86KB
Hapus
Edit
Rename
class-wp-block.php
19.959KB
Hapus
Edit
Rename
class-wp-classic-to-block-menu-converter.php
3.992KB
Hapus
Edit
Rename
class-wp-comment-query.php
47.261KB
Hapus
Edit
Rename
class-wp-comment.php
9.152KB
Hapus
Edit
Rename
class-wp-customize-control.php
25.127KB
Hapus
Edit
Rename
class-wp-customize-manager.php
197.792KB
Hapus
Edit
Rename
class-wp-customize-nav-menus.php
55.845KB
Hapus
Edit
Rename
class-wp-customize-section.php
10.946KB
Hapus
Edit
Rename
class-wp-customize-widgets.php
70.466KB
Hapus
Edit
Rename
class-wp-date-query.php
34.889KB
Hapus
Edit
Rename
class-wp-dependencies.php
14.784KB
Hapus
Edit
Rename
class-wp-embed.php
15.619KB
Hapus
Edit
Rename
class-wp-error.php
7.326KB
Hapus
Edit
Rename
class-wp-fatal-error-handler.php
7.959KB
Hapus
Edit
Rename
class-wp-feed-cache-transient.php
3.102KB
Hapus
Edit
Rename
class-wp-feed-cache.php
0.946KB
Hapus
Edit
Rename
class-wp-http-cookie.php
7.216KB
Hapus
Edit
Rename
class-wp-http-curl.php
12.247KB
Hapus
Edit
Rename
class-wp-http-encoding.php
6.532KB
Hapus
Edit
Rename
class-wp-http-ixr-client.php
3.419KB
Hapus
Edit
Rename
class-wp-http-proxy.php
5.84KB
Hapus
Edit
Rename
class-wp-http-requests-hooks.php
1.975KB
Hapus
Edit
Rename
class-wp-http-requests-response.php
4.297KB
Hapus
Edit
Rename
class-wp-http-streams.php
16.464KB
Hapus
Edit
Rename
class-wp-http.php
40.533KB
Hapus
Edit
Rename
class-wp-image-editor-gd.php
19.42KB
Hapus
Edit
Rename
class-wp-image-editor-imagick.php
31.902KB
Hapus
Edit
Rename
class-wp-image-editor.php
16.541KB
Hapus
Edit
Rename
class-wp-list-util.php
7.269KB
Hapus
Edit
Rename
class-wp-locale-switcher.php
6.475KB
Hapus
Edit
Rename
class-wp-locale.php
15.733KB
Hapus
Edit
Rename
class-wp-matchesmapregex.php
1.785KB
Hapus
Edit
Rename
class-wp-meta-query.php
29.815KB
Hapus
Edit
Rename
class-wp-metadata-lazyloader.php
6.673KB
Hapus
Edit
Rename
class-wp-network-query.php
19.392KB
Hapus
Edit
Rename
class-wp-network.php
12.008KB
Hapus
Edit
Rename
class-wp-object-cache.php
17.113KB
Hapus
Edit
Rename
class-wp-oembed-controller.php
6.743KB
Hapus
Edit
Rename
class-wp-oembed.php
30.737KB
Hapus
Edit
Rename
class-wp-paused-extensions-storage.php
4.991KB
Hapus
Edit
Rename
class-wp-plugin-dependencies.php
24.726KB
Hapus
Edit
Rename
class-wp-post-type.php
29.629KB
Hapus
Edit
Rename
class-wp-post.php
6.332KB
Hapus
Edit
Rename
class-wp-query.php
150.47KB
Hapus
Edit
Rename
class-wp-recovery-mode-email-service.php
10.921KB
Hapus
Edit
Rename
class-wp-recovery-mode-key-service.php
4.5KB
Hapus
Edit
Rename
class-wp-recovery-mode-link-service.php
3.382KB
Hapus
Edit
Rename
class-wp-recovery-mode.php
11.167KB
Hapus
Edit
Rename
class-wp-rewrite.php
62.195KB
Hapus
Edit
Rename
class-wp-roles.php
8.385KB
Hapus
Edit
Rename
class-wp-script-modules.php
18.912KB
Hapus
Edit
Rename
class-wp-scripts.php
27.68KB
Hapus
Edit
Rename
class-wp-session-tokens.php
7.276KB
Hapus
Edit
Rename
class-wp-simplepie-file.php
3.328KB
Hapus
Edit
Rename
class-wp-simplepie-sanitize-kses.php
1.794KB
Hapus
Edit
Rename
class-wp-site-query.php
30.884KB
Hapus
Edit
Rename
class-wp-speculation-rules.php
7.351KB
Hapus
Edit
Rename
class-wp-tax-query.php
19.097KB
Hapus
Edit
Rename
class-wp-taxonomy.php
18.132KB
Hapus
Edit
Rename
class-wp-term-query.php
39.911KB
Hapus
Edit
Rename
class-wp-term.php
5.174KB
Hapus
Edit
Rename
class-wp-text-diff-renderer-inline.php
0.956KB
Hapus
Edit
Rename
class-wp-textdomain-registry.php
10.235KB
Hapus
Edit
Rename
class-wp-theme-json-data.php
1.767KB
Hapus
Edit
Rename
class-wp-theme-json-schema.php
7.194KB
Hapus
Edit
Rename
class-wp-theme-json.php
157.012KB
Hapus
Edit
Rename
class-wp-theme.php
63.88KB
Hapus
Edit
Rename
class-wp-token-map.php
27.947KB
Hapus
Edit
Rename
class-wp-user-meta-session-tokens.php
2.92KB
Hapus
Edit
Rename
class-wp-user-request.php
2.17KB
Hapus
Edit
Rename
class-wp-user.php
22.292KB
Hapus
Edit
Rename
class-wp-walker.php
13.01KB
Hapus
Edit
Rename
class-wp-widget-factory.php
3.269KB
Hapus
Edit
Rename
class-wp-widget.php
17.992KB
Hapus
Edit
Rename
class-wp-xmlrpc-server.php
209.91KB
Hapus
Edit
Rename
class-wp.php
25.507KB
Hapus
Edit
Rename
class-wpdb.php
115.614KB
Hapus
Edit
Rename
class.wp-dependencies.php
0.364KB
Hapus
Edit
Rename
cron.php
40.619KB
Hapus
Edit
Rename
default-constants.php
11.099KB
Hapus
Edit
Rename
default-filters.php
34.849KB
Hapus
Edit
Rename
default-widgets.php
2.17KB
Hapus
Edit
Rename
deprecated.php
185.674KB
Hapus
Edit
Rename
embed.php
37.02KB
Hapus
Edit
Rename
error-protection.php
4.024KB
Hapus
Edit
Rename
feed-atom-comments.php
5.375KB
Hapus
Edit
Rename
feed-atom.php
2.977KB
Hapus
Edit
Rename
feed-rdf.php
2.605KB
Hapus
Edit
Rename
feed-rss.php
1.161KB
Hapus
Edit
Rename
feed-rss2-comments.php
4.039KB
Hapus
Edit
Rename
feed-rss2.php
3.71KB
Hapus
Edit
Rename
feed.php
22.862KB
Hapus
Edit
Rename
fonts.php
9.522KB
Hapus
Edit
Rename
formatting.php
327.372KB
Hapus
Edit
Rename
functions.php
276.526KB
Hapus
Edit
Rename
functions.wp-scripts.php
14.217KB
Hapus
Edit
Rename
functions.wp-styles.php
8.382KB
Hapus
Edit
Rename
general-template.php
165.52KB
Hapus
Edit
Rename
global-styles-and-settings.php
20.708KB
Hapus
Edit
Rename
http.php
24.719KB
Hapus
Edit
Rename
https-detection.php
5.528KB
Hapus
Edit
Rename
kses.php
72.659KB
Hapus
Edit
Rename
link-template.php
154.014KB
Hapus
Edit
Rename
load.php
54.354KB
Hapus
Edit
Rename
locale.php
0.158KB
Hapus
Edit
Rename
media.php
213.305KB
Hapus
Edit
Rename
ms-blogs.php
25.168KB
Hapus
Edit
Rename
ms-default-constants.php
4.806KB
Hapus
Edit
Rename
ms-default-filters.php
6.48KB
Hapus
Edit
Rename
ms-deprecated.php
21.249KB
Hapus
Edit
Rename
ms-files.php
2.647KB
Hapus
Edit
Rename
ms-functions.php
89.11KB
Hapus
Edit
Rename
ms-load.php
19.417KB
Hapus
Edit
Rename
ms-network.php
3.693KB
Hapus
Edit
Rename
ms-settings.php
4.027KB
Hapus
Edit
Rename
ms-site.php
39.541KB
Hapus
Edit
Rename
nav-menu.php
43.333KB
Hapus
Edit
Rename
option.php
99.374KB
Hapus
Edit
Rename
pluggable.php
113.252KB
Hapus
Edit
Rename
post-formats.php
6.936KB
Hapus
Edit
Rename
query.php
36.167KB
Hapus
Edit
Rename
registration-functions.php
0.195KB
Hapus
Edit
Rename
registration.php
0.195KB
Hapus
Edit
Rename
rest-api.php
97.259KB
Hapus
Edit
Rename
revision.php
30.166KB
Hapus
Edit
Rename
rewrite.php
19.083KB
Hapus
Edit
Rename
robots-template.php
5.063KB
Hapus
Edit
Rename
rss-functions.php
0.249KB
Hapus
Edit
Rename
rss.php
22.571KB
Hapus
Edit
Rename
script-modules.php
7.531KB
Hapus
Edit
Rename
session.php
0.252KB
Hapus
Edit
Rename
shortcodes.php
23.487KB
Hapus
Edit
Rename
spl-autoload-compat.php
0.431KB
Hapus
Edit
Rename
style-engine.php
7.386KB
Hapus
Edit
Rename
taxonomy.php
171.326KB
Hapus
Edit
Rename
template-canvas.php
0.531KB
Hapus
Edit
Rename
template-loader.php
2.941KB
Hapus
Edit
Rename
template.php
23.588KB
Hapus
Edit
Rename
theme-i18n.json
1.262KB
Hapus
Edit
Rename
theme-previews.php
2.766KB
Hapus
Edit
Rename
theme.json
8.5KB
Hapus
Edit
Rename
theme.php
130.845KB
Hapus
Edit
Rename
update.php
35.926KB
Hapus
Edit
Rename
user.php
170.322KB
Hapus
Edit
Rename
vars.php
6.337KB
Hapus
Edit
Rename
version.php
0.909KB
Hapus
Edit
Rename
wp-diff.php
0.709KB
Hapus
Edit
Rename
<=Back
<?php /** * WordPress Rewrite API * * @package WordPress * @subpackage Rewrite */ /** * Endpoint mask that matches nothing. * * @since 2.1.0 */ define( 'EP_NONE', 0 ); /** * Endpoint mask that matches post permalinks. * * @since 2.1.0 */ define( 'EP_PERMALINK', 1 ); /** * Endpoint mask that matches attachment permalinks. * * @since 2.1.0 */ define( 'EP_ATTACHMENT', 2 ); /** * Endpoint mask that matches any date archives. * * @since 2.1.0 */ define( 'EP_DATE', 4 ); /** * Endpoint mask that matches yearly archives. * * @since 2.1.0 */ define( 'EP_YEAR', 8 ); /** * Endpoint mask that matches monthly archives. * * @since 2.1.0 */ define( 'EP_MONTH', 16 ); /** * Endpoint mask that matches daily archives. * * @since 2.1.0 */ define( 'EP_DAY', 32 ); /** * Endpoint mask that matches the site root. * * @since 2.1.0 */ define( 'EP_ROOT', 64 ); /** * Endpoint mask that matches comment feeds. * * @since 2.1.0 */ define( 'EP_COMMENTS', 128 ); /** * Endpoint mask that matches searches. * * Note that this only matches a search at a "pretty" URL such as * `/search/my-search-term`, not `?s=my-search-term`. * * @since 2.1.0 */ define( 'EP_SEARCH', 256 ); /** * Endpoint mask that matches category archives. * * @since 2.1.0 */ define( 'EP_CATEGORIES', 512 ); /** * Endpoint mask that matches tag archives. * * @since 2.3.0 */ define( 'EP_TAGS', 1024 ); /** * Endpoint mask that matches author archives. * * @since 2.1.0 */ define( 'EP_AUTHORS', 2048 ); /** * Endpoint mask that matches pages. * * @since 2.1.0 */ define( 'EP_PAGES', 4096 ); /** * Endpoint mask that matches all archive views. * * @since 3.7.0 */ define( 'EP_ALL_ARCHIVES', EP_DATE | EP_YEAR | EP_MONTH | EP_DAY | EP_CATEGORIES | EP_TAGS | EP_AUTHORS ); /** * Endpoint mask that matches everything. * * @since 2.1.0 */ define( 'EP_ALL', EP_PERMALINK | EP_ATTACHMENT | EP_ROOT | EP_COMMENTS | EP_SEARCH | EP_PAGES | EP_ALL_ARCHIVES ); /** * Adds a rewrite rule that transforms a URL structure to a set of query vars. * * Any value in the $after parameter that isn't 'bottom' will result in the rule * being placed at the top of the rewrite rules. * * @since 2.1.0 * @since 4.4.0 Array support was added to the `$query` parameter. * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $regex Regular expression to match request against. * @param string|array $query The corresponding query vars for this rewrite rule. * @param string $after Optional. Priority of the new rule. Accepts 'top' * or 'bottom'. Default 'bottom'. */ function add_rewrite_rule( $regex, $query, $after = 'bottom' ) { global $wp_rewrite; $wp_rewrite->add_rule( $regex, $query, $after ); } /** * Adds a new rewrite tag (like %postname%). * * The `$query` parameter is optional. If it is omitted you must ensure that you call * this on, or before, the {@see 'init'} hook. This is because `$query` defaults to * `$tag=`, and for this to work a new query var has to be added. * * @since 2.1.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * @global WP $wp Current WordPress environment instance. * * @param string $tag Name of the new rewrite tag. * @param string $regex Regular expression to substitute the tag for in rewrite rules. * @param string $query Optional. String to append to the rewritten query. Must end in '='. Default empty. */ function add_rewrite_tag( $tag, $regex, $query = '' ) { // Validate the tag's name. if ( strlen( $tag ) < 3 || '%' !== $tag[0] || '%' !== $tag[ strlen( $tag ) - 1 ] ) { return; } global $wp_rewrite, $wp; if ( empty( $query ) ) { $qv = trim( $tag, '%' ); $wp->add_query_var( $qv ); $query = $qv . '='; } $wp_rewrite->add_rewrite_tag( $tag, $regex, $query ); } /** * Removes an existing rewrite tag (like %postname%). * * @since 4.5.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $tag Name of the rewrite tag. */ function remove_rewrite_tag( $tag ) { global $wp_rewrite; $wp_rewrite->remove_rewrite_tag( $tag ); } /** * Adds a permalink structure. * * @since 3.0.0 * * @see WP_Rewrite::add_permastruct() * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $name Name for permalink structure. * @param string $struct Permalink structure. * @param array $args Optional. Arguments for building the rules from the permalink structure, * see WP_Rewrite::add_permastruct() for full details. Default empty array. */ function add_permastruct( $name, $struct, $args = array() ) { global $wp_rewrite; // Back-compat for the old parameters: $with_front and $ep_mask. if ( ! is_array( $args ) ) { $args = array( 'with_front' => $args ); } if ( func_num_args() === 4 ) { $args['ep_mask'] = func_get_arg( 3 ); } $wp_rewrite->add_permastruct( $name, $struct, $args ); } /** * Removes a permalink structure. * * Can only be used to remove permastructs that were added using add_permastruct(). * Built-in permastructs cannot be removed. * * @since 4.5.0 * * @see WP_Rewrite::remove_permastruct() * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $name Name for permalink structure. */ function remove_permastruct( $name ) { global $wp_rewrite; $wp_rewrite->remove_permastruct( $name ); } /** * Adds a new feed type like /atom1/. * * @since 2.1.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $feedname Feed name. Should not start with '_'. * @param callable $callback Callback to run on feed display. * @return string Feed action name. */ function add_feed( $feedname, $callback ) { global $wp_rewrite; if ( ! in_array( $feedname, $wp_rewrite->feeds, true ) ) { $wp_rewrite->feeds[] = $feedname; } $hook = 'do_feed_' . $feedname; // Remove default function hook. remove_action( $hook, $hook ); add_action( $hook, $callback, 10, 2 ); return $hook; } /** * Removes rewrite rules and then recreate rewrite rules. * * @since 3.0.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param bool $hard Whether to update .htaccess (hard flush) or just update * rewrite_rules option (soft flush). Default is true (hard). */ function flush_rewrite_rules( $hard = true ) { global $wp_rewrite; if ( is_callable( array( $wp_rewrite, 'flush_rules' ) ) ) { $wp_rewrite->flush_rules( $hard ); } } /** * Adds an endpoint, like /trackback/. * * Adding an endpoint creates extra rewrite rules for each of the matching * places specified by the provided bitmask. For example: * * add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES ); * * will add a new rewrite rule ending with "json(/(.*))?/?$" for every permastruct * that describes a permalink (post) or page. This is rewritten to "json=$match" * where $match is the part of the URL matched by the endpoint regex (e.g. "foo" in * "[permalink]/json/foo/"). * * A new query var with the same name as the endpoint will also be created. * * When specifying $places ensure that you are using the EP_* constants (or a * combination of them using the bitwise OR operator) as their values are not * guaranteed to remain static (especially `EP_ALL`). * * Be sure to flush the rewrite rules - see flush_rewrite_rules() - when your plugin gets * activated and deactivated. * * @since 2.1.0 * @since 4.3.0 Added support for skipping query var registration by passing `false` to `$query_var`. * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * * @param string $name Name of the endpoint. * @param int $places Endpoint mask describing the places the endpoint should be added. * Accepts a mask of: * - `EP_ALL` * - `EP_NONE` * - `EP_ALL_ARCHIVES` * - `EP_ATTACHMENT` * - `EP_AUTHORS` * - `EP_CATEGORIES` * - `EP_COMMENTS` * - `EP_DATE` * - `EP_DAY` * - `EP_MONTH` * - `EP_PAGES` * - `EP_PERMALINK` * - `EP_ROOT` * - `EP_SEARCH` * - `EP_TAGS` * - `EP_YEAR` * @param string|bool $query_var Name of the corresponding query variable. Pass `false` to skip registering a query_var * for this endpoint. Defaults to the value of `$name`. */ function add_rewrite_endpoint( $name, $places, $query_var = true ) { global $wp_rewrite; $wp_rewrite->add_endpoint( $name, $places, $query_var ); } /** * Filters the URL base for taxonomies. * * To remove any manually prepended /index.php/. * * @access private * @since 2.6.0 * * @param string $base The taxonomy base that we're going to filter * @return string */ function _wp_filter_taxonomy_base( $base ) { if ( ! empty( $base ) ) { $base = preg_replace( '|^/index\.php/|', '', $base ); $base = trim( $base, '/' ); } return $base; } /** * Resolves numeric slugs that collide with date permalinks. * * Permalinks of posts with numeric slugs can sometimes look to WP_Query::parse_query() * like a date archive, as when your permalink structure is `/%year%/%postname%/` and * a post with post_name '05' has the URL `/2015/05/`. * * This function detects conflicts of this type and resolves them in favor of the * post permalink. * * Note that, since 4.3.0, wp_unique_post_slug() prevents the creation of post slugs * that would result in a date archive conflict. The resolution performed in this * function is primarily for legacy content, as well as cases when the admin has changed * the site's permalink structure in a way that introduces URL conflicts. * * @since 4.3.0 * * @param array $query_vars Optional. Query variables for setting up the loop, as determined in * WP::parse_request(). Default empty array. * @return array Returns the original array of query vars, with date/post conflicts resolved. */ function wp_resolve_numeric_slug_conflicts( $query_vars = array() ) { if ( ! isset( $query_vars['year'] ) && ! isset( $query_vars['monthnum'] ) && ! isset( $query_vars['day'] ) ) { return $query_vars; } // Identify the 'postname' position in the permastruct array. $permastructs = array_values( array_filter( explode( '/', get_option( 'permalink_structure' ) ) ) ); $postname_index = array_search( '%postname%', $permastructs, true ); if ( false === $postname_index ) { return $query_vars; } /* * A numeric slug could be confused with a year, month, or day, depending on position. To account for * the possibility of post pagination (eg 2015/2 for the second page of a post called '2015'), our * `is_*` checks are generous: check for year-slug clashes when `is_year` *or* `is_month`, and check * for month-slug clashes when `is_month` *or* `is_day`. */ $compare = ''; if ( 0 === $postname_index && ( isset( $query_vars['year'] ) || isset( $query_vars['monthnum'] ) ) ) { $compare = 'year'; } elseif ( $postname_index && '%year%' === $permastructs[ $postname_index - 1 ] && ( isset( $query_vars['monthnum'] ) || isset( $query_vars['day'] ) ) ) { $compare = 'monthnum'; } elseif ( $postname_index && '%monthnum%' === $permastructs[ $postname_index - 1 ] && isset( $query_vars['day'] ) ) { $compare = 'day'; } if ( ! $compare ) { return $query_vars; } // This is the potentially clashing slug. $value = ''; if ( $compare && array_key_exists( $compare, $query_vars ) ) { $value = $query_vars[ $compare ]; } $post = get_page_by_path( $value, OBJECT, 'post' ); if ( ! ( $post instanceof WP_Post ) ) { return $query_vars; } // If the date of the post doesn't match the date specified in the URL, resolve to the date archive. if ( preg_match( '/^([0-9]{4})\-([0-9]{2})/', $post->post_date, $matches ) && isset( $query_vars['year'] ) && ( 'monthnum' === $compare || 'day' === $compare ) ) { // $matches[1] is the year the post was published. if ( (int) $query_vars['year'] !== (int) $matches[1] ) { return $query_vars; } // $matches[2] is the month the post was published. if ( 'day' === $compare && isset( $query_vars['monthnum'] ) && (int) $query_vars['monthnum'] !== (int) $matches[2] ) { return $query_vars; } } /* * If the located post contains nextpage pagination, then the URL chunk following postname may be * intended as the page number. Verify that it's a valid page before resolving to it. */ $maybe_page = ''; if ( 'year' === $compare && isset( $query_vars['monthnum'] ) ) { $maybe_page = $query_vars['monthnum']; } elseif ( 'monthnum' === $compare && isset( $query_vars['day'] ) ) { $maybe_page = $query_vars['day']; } // Bug found in #11694 - 'page' was returning '/4'. $maybe_page = (int) trim( $maybe_page, '/' ); $post_page_count = substr_count( $post->post_content, '<!--nextpage-->' ) + 1; // If the post doesn't have multiple pages, but a 'page' candidate is found, resolve to the date archive. if ( 1 === $post_page_count && $maybe_page ) { return $query_vars; } // If the post has multiple pages and the 'page' number isn't valid, resolve to the date archive. if ( $post_page_count > 1 && $maybe_page > $post_page_count ) { return $query_vars; } // If we've gotten to this point, we have a slug/date clash. First, adjust for nextpage. if ( '' !== $maybe_page ) { $query_vars['page'] = (int) $maybe_page; } // Next, unset autodetected date-related query vars. unset( $query_vars['year'] ); unset( $query_vars['monthnum'] ); unset( $query_vars['day'] ); // Then, set the identified post. $query_vars['name'] = $post->post_name; // Finally, return the modified query vars. return $query_vars; } /** * Examines a URL and try to determine the post ID it represents. * * Checks are supposedly from the hosted site blog. * * @since 1.0.0 * * @global WP_Rewrite $wp_rewrite WordPress rewrite component. * @global WP $wp Current WordPress environment instance. * * @param string $url Permalink to check. * @return int Post ID, or 0 on failure. */ function url_to_postid( $url ) { global $wp_rewrite; /** * Filters the URL to derive the post ID from. * * @since 2.2.0 * * @param string $url The URL to derive the post ID from. */ $url = apply_filters( 'url_to_postid', $url ); $url_host = parse_url( $url, PHP_URL_HOST ); if ( is_string( $url_host ) ) { $url_host = str_replace( 'www.', '', $url_host ); } else { $url_host = ''; } $home_url_host = parse_url( home_url(), PHP_URL_HOST ); if ( is_string( $home_url_host ) ) { $home_url_host = str_replace( 'www.', '', $home_url_host ); } else { $home_url_host = ''; } // Bail early if the URL does not belong to this site. if ( $url_host && $url_host !== $home_url_host ) { return 0; } // First, check to see if there is a 'p=N' or 'page_id=N' to match against. if ( preg_match( '#[?&](p|page_id|attachment_id)=(\d+)#', $url, $values ) ) { $id = absint( $values[2] ); if ( $id ) { return $id; } } // Get rid of the #anchor. $url_split = explode( '#', $url ); $url = $url_split[0]; // Get rid of URL ?query=string. $url_split = explode( '?', $url ); $url = $url_split[0]; // Set the correct URL scheme. $scheme = parse_url( home_url(), PHP_URL_SCHEME ); $url = set_url_scheme( $url, $scheme ); // Add 'www.' if it is absent and should be there. if ( str_contains( home_url(), '://www.' ) && ! str_contains( $url, '://www.' ) ) { $url = str_replace( '://', '://www.', $url ); } // Strip 'www.' if it is present and shouldn't be. if ( ! str_contains( home_url(), '://www.' ) ) { $url = str_replace( '://www.', '://', $url ); } if ( trim( $url, '/' ) === home_url() && 'page' === get_option( 'show_on_front' ) ) { $page_on_front = get_option( 'page_on_front' ); if ( $page_on_front && get_post( $page_on_front ) instanceof WP_Post ) { return (int) $page_on_front; } } // Check to see if we are using rewrite rules. $rewrite = $wp_rewrite->wp_rewrite_rules(); // Not using rewrite rules, and 'p=N' and 'page_id=N' methods failed, so we're out of options. if ( empty( $rewrite ) ) { return 0; } // Strip 'index.php/' if we're not using path info permalinks. if ( ! $wp_rewrite->using_index_permalinks() ) { $url = str_replace( $wp_rewrite->index . '/', '', $url ); } if ( str_contains( trailingslashit( $url ), home_url( '/' ) ) ) { // Chop off http://domain.com/[path]. $url = str_replace( home_url(), '', $url ); } else { // Chop off /path/to/blog. $home_path = parse_url( home_url( '/' ) ); $home_path = isset( $home_path['path'] ) ? $home_path['path'] : ''; $url = preg_replace( sprintf( '#^%s#', preg_quote( $home_path ) ), '', trailingslashit( $url ) ); } // Trim leading and lagging slashes. $url = trim( $url, '/' ); $request = $url; $post_type_query_vars = array(); foreach ( get_post_types( array(), 'objects' ) as $post_type => $t ) { if ( ! empty( $t->query_var ) ) { $post_type_query_vars[ $t->query_var ] = $post_type; } } // Look for matches. $request_match = $request; foreach ( (array) $rewrite as $match => $query ) { /* * If the requesting file is the anchor of the match, * prepend it to the path info. */ if ( ! empty( $url ) && ( $url !== $request ) && str_starts_with( $match, $url ) ) { $request_match = $url . '/' . $request; } if ( preg_match( "#^$match#", $request_match, $matches ) ) { if ( $wp_rewrite->use_verbose_page_rules && preg_match( '/pagename=\$matches\[([0-9]+)\]/', $query, $varmatch ) ) { // This is a verbose page match, let's check to be sure about it. $page = get_page_by_path( $matches[ $varmatch[1] ] ); if ( ! $page ) { continue; } $post_status_obj = get_post_status_object( $page->post_status ); if ( ! $post_status_obj->public && ! $post_status_obj->protected && ! $post_status_obj->private && $post_status_obj->exclude_from_search ) { continue; } } /* * Got a match. * Trim the query of everything up to the '?'. */ $query = preg_replace( '!^.+\?!', '', $query ); // Substitute the substring matches into the query. $query = addslashes( WP_MatchesMapRegex::apply( $query, $matches ) ); // Filter out non-public query vars. global $wp; parse_str( $query, $query_vars ); $query = array(); foreach ( (array) $query_vars as $key => $value ) { if ( in_array( (string) $key, $wp->public_query_vars, true ) ) { $query[ $key ] = $value; if ( isset( $post_type_query_vars[ $key ] ) ) { $query['post_type'] = $post_type_query_vars[ $key ]; $query['name'] = $value; } } } // Resolve conflicts between posts with numeric slugs and date archive queries. $query = wp_resolve_numeric_slug_conflicts( $query ); // Do the query. $query = new WP_Query( $query ); if ( ! empty( $query->posts ) && $query->is_singular ) { return $query->post->ID; } else { return 0; } } } return 0; }
Liking