1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11: function xu_current_url( $parse = false, $obj = false ) {
12: $url = $_SERVER['REQUEST_URI'];
13: $url = ltrim( $url, '/' );
14: $url = home_url() . '/' . $url;
15:
16:
17:
18: if ( ! (bool) $parse ) {
19: return $url;
20: }
21:
22: $parts = parse_url( $url );
23: $parts = $parts === false ? [] : $parts;
24:
25:
26: return $obj ? (object) $parts : $parts;
27: }
28:
29: 30: 31: 32: 33:
34: function xu_current_url_to_postid() {
35: return xu_url_to_postid( xu_current_url() );
36: }
37:
38: 39: 40: 41: 42: 43: 44: 45: 46:
47: function xu_url_to_postid( $url = '' ) {
48:
49: if ( ! did_action( 'init' ) ) {
50: return 0;
51: }
52:
53:
54: if ( parse_url( $url, PHP_URL_HOST ) !== parse_url( home_url(), PHP_URL_HOST ) ) {
55: return 0;
56: }
57:
58: return (int) xu_cache_get( 'url_to_postid', [$url], __FUNCTION__ );
59: }
60: