url_to_postid [ WordPress Function ]
url_to_postid ( $url )
| Parameters: |
|
| Returns: |
|
| Defined at: |
|
Soorgelijke functies: format_to_post, bulk_edit_posts, write_post, get_post_field, user_can_edit_post
Examine a url and try to determine the post ID it represents.
Checks are supposedly from the hosted site blog.
Source
<?php
function url_to_postid($url) {
global $wp_rewrite;
$url = apply_filters('url_to_postid', $url);
// 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;
}
// 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;
// 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];
// Add 'www.' if it is absent and should be there
if ( false !== strpos(home_url(), '://www.') && false === strpos($url, '://www.') )
$url = str_replace('://', '://www.', $url);
// Strip 'www.' if it is present and shouldn't be
if ( false === strpos(home_url(), '://www.') )
$url = str_replace('://www.', '://', $url);
// Strip 'index.php/' if we're not using path info permalinks
if ( !$wp_rewrite->using_index_permalinks() )
$url = str_replace('index.php/', '', $url);
if ( false !== strpos($url, home_url()) ) {
// Chop off http://domain.com
$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 = str_replace($home_path, '', $url);
}
// Trim leading and lagging slashes
$url = trim($url, '/');
$request = $url;
// 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) && (strpos($match, $url) === 0) )
$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, lets check to be sure about it
if ( ! get_page_by_path( $matches[ $varmatch[1] ] ) )
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($key, $wp->public_query_vars) )
$query[$key] = $value;
}
// Do the query
$query = new WP_Query($query);
if ( !empty($query->posts) && $query->is_singular )
return $query->post->ID;
else
return 0;
}
}
return 0;
}
?>
Examples [ wp-snippets.com ]
Top Google zoekresultaten
- Function Reference/url to postid « WordPress Codex
Description. Retrieve id of page/post given its url, or zero on failure. Can be thought of as the opposite function of get_permalink. Note that this does not return ...
codex.wordpress.org - WordPress › Support » Tags — url_to_postid
url_to_postid for future posts, 1, Holzhaus, 1 month. [Plugin: WordPress MU Domain Mapping] Domain Mapping and url_to_postid, 1, jalefkowit, 1 year ...
wordpress.org - url_to_postid Wordpress hook details -- Adam Brown, BYU Political ...
Detailed information about every action hook and filter used in WordPress. Makes Plugin API easier to use. Lists appearance, file location, and deprecation data ...
adambrown.info - Topic: url_to_postid - Better WordPress
Oct 8, 2011 ... The "url_to_postid" archive page. Posts belong to this page are tagged with " url_to_postid" and possibly with many other topics, too.
betterwp.net
Gebruikersdiscussies [ wordpress.org ]
- Holzhaus on "url_to_postid for future posts"
- jalefkowit on "[Plugin: WordPress MU Domain Mapping] Domain Mapping and url_to_postid"
- xorax on "Pingbacks don't work on pages but on posts only"
- Michael_ on "Pingbacks don't work on pages but on posts only"
- xorax on "Pingbacks don't work on pages but on posts only"
- Foofy on "Get post ID in 'init' hook"
- Michael_ on "Pingbacks don't work on pages but on posts only"
- Michael_ on "Pingbacks don't work on pages but on posts only"
- Michael_ on "Pingbacks don't work on pages but on posts only"
- Otto on "Pingbacks don't work on pages but on posts only"