У меня есть мультисайтовый WP, поэтому, когда я по каким-то причинам просматриваю блоги в некоторых блогах, url_to_postid()
работает, в других блогах на пост того же типа не работает, в то время как get_page_by_path()
работает как шарм.Таким образом, я сделал это так, что может быть не идеально, хотя:
$parsed_url = wp_parse_url( $url ); // Parse URL
$slug = substr($parsed_url['path'], 1 ); // Trim slash in the beginning
$post_id = url_to_postid( $slug ); // Attempt to get post ID
if ( ! $post_id ) { // If it didn't work try to get it manually from DB
$post_query_result =
$wpdb->get_row("SELECT ID FROM {$wpdb->prefix}posts WHERE post_name = '{$slug}'");
$analog_id = (int) $post_query_result->ID;
}