현재 페이지의 URL을 표시하는 방법은 무엇입니까?
-
-
이 URL로 수행 할 작업에 대한 컨텍스트를 제공 할 수 있습니까?공유 가능한 URL을 만들려고합니까?링크/액션에 대한 사용자 지정 URL을 구성합니까?Can you provide some context as to what you would want to do with this URL? Are you trying to create sharable URLs? Assemble custom URLs for links/actions?
- 0
- 2017-07-25
- Tom J Nowell
-
@TomJNowell 특정 JS 스크립트를 대기열에 추가하고 싶지만 특정 페이지에서만 (이 경우 해당 페이지는 다양한 언어로 된 내 사이트의 홈페이지입니다 : https://www.example.com/,https ://www.example.com/fr/,https://www.example.com/es/등).JS 파일은 홈페이지에만 나타나는 여러 제목에 대한 하이퍼 링크를 서버에 추가합니다.@TomJNowell I would like to enqueue a particular JS script, but only on certain pages (in this case, those pages are the homepage of my site in various languages: https://www.example.com/, https://www.example.com/fr/, https://www.example.com/es/, etc). The JS file will server to add hyperlinks to several titles that appear only on the homepage.
- 0
- 2017-07-25
- cag8f
-
`is_home ()`또는`is_page ( 'fr')`등을 사용하고 그것이 사실 인 경우에만 스크립트를 대기열에 넣는 것이 어떻습니까?why not just use `is_home()` or `is_page( 'fr' )` etc and only enqueue the script if it's true?
- 0
- 2017-07-25
- Tom J Nowell
-
@TomJNowell 이제 내 코드는`if (home_url ($ wp-> request)==home_url ()) {wp_enqueue_script ();}`언어에 관계없이 모든 홈페이지에서 실행되는 것처럼 보입니다.그것이 당신이 제안한 것입니까?@TomJNowell Well now my code is `if ( home_url( $wp->request ) == home_url() ) { wp_enqueue_script();}` This appears to fire on every home page, regardless of language. Is that what you were suggesting?
- 0
- 2017-07-26
- cag8f
-
왜`$ _SERVER [ 'REQUEST_URI']`와 회사를 사용하지 않습니까?이 질문을 참조하십시오 : https://stackoverflow.com/q/6768793/247696Why not use `$_SERVER['REQUEST_URI']` and company? See this question: https://stackoverflow.com/q/6768793/247696
- 1
- 2019-05-29
- Flimm
-
10 대답
- 투표
-
- 2017-07-25
get_permalink()
는 단일 페이지 및 게시물에만 실제로 유용하며 루프 내에서만 작동합니다.내가 본 가장 간단한 방법은 다음과 같습니다.
global $wp; echo home_url( $wp->request )
$wp->request
에는 URL의 경로 부분이 포함됩니다./path/to/page
및home_url()
은 설정> 일반에서 URL을 출력하지만 여기에 경로를 추가 할 수 있으므로 요청 경로를 다음에 추가합니다. 이 코드의 홈 URL입니다.일반적으로 설정된 영구 링크에서는 작동하지 않을 수 있으며 쿼리 문자열 (URL의
?foo=bar
부분)은 제외됩니다.퍼머 링크가 일반으로 설정된 경우 URL을 가져 오려면 대신
$wp->query_vars
에 전달하여add_query_arg()
를 사용할 수 있습니다.global $wp; echo add_query_arg( $wp->query_vars, home_url() );
이 두 가지 방법을 결합하여 영구 링크 설정에 관계없이 쿼리 문자열을 포함한 현재 URL을 가져올 수 있습니다.
global $wp; echo add_query_arg( $wp->query_vars, home_url( $wp->request ) );
get_permalink()
is only really useful for single pages and posts, and only works inside the loop.The simplest way I've seen is this:
global $wp; echo home_url( $wp->request )
$wp->request
includes the path part of the URL, eg./path/to/page
andhome_url()
outputs the URL in Settings > General, but you can append a path to it, so we're appending the request path to the home URL in this code.Note that this probably won't work with Permalinks set to Plain, and will leave off query strings (the
?foo=bar
part of the URL).To get the URL when permalinks are set to plain you can use
$wp->query_vars
instead, by passing it toadd_query_arg()
:global $wp; echo add_query_arg( $wp->query_vars, home_url() );
And you could combine these two methods to get the current URL, including the query string, regardless of permalink settings:
global $wp; echo add_query_arg( $wp->query_vars, home_url( $wp->request ) );
-
퍼머 링크가 일반으로 설정된 경우 :`echo '//'.$ _SERVER [ 'HTTP_HOST']$ _SERVER [ 'REQUEST_URI'];`If permalinks set to plain: `echo '//' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];`.
- 7
- 2017-07-25
- Max Yudin
-
@Jacob 시도했지만 내 홈페이지의 URL 만 반환하는 것 같습니다.이 페이지의 왼쪽 상단 (https://dev.horizonhomes-samui.com/properties/hs0540/)에서 볼 수 있듯이`echo home_url ($ wp-> request)`에 코드를 삽입했습니다.나는`global $ wp`도 포함하도록했습니다.영구 링크는 '일반'이 아니라 '게시물 이름'으로 설정됩니다.로그에도 관련 PHP 오류가 표시되지 않습니다.이 특정 페이지는 방문자에게 차단되는 내 개발 사이트의 일부입니다.그게 중요한지 아닌지 잘 모르겠습니다.편집 : 사실,그 생각을 유지하십시오-사용자 오류 일 수 있습니다.대기 ...@Jacob I tried that, but it seems to be returning the URL of my homepage only. As you can see in the top left on this page (https://dev.horizonhomes-samui.com/properties/hs0540/), where I have inserted code to `echo home_url( $wp->request )`. I have ensured to include `global $wp` as well. Permalinks are not 'Plain,' but set to 'Post Name.' I don't see any relevant PHP errors in the log either. This particular page is part of my dev site, which is otherwise blocked off to visitors. I'm not sure if that matters or not. edit: Actually, hold that thought--could be user error. Stand by...
- 2
- 2017-07-25
- cag8f
-
@Jacob 편집 2 : 확인 코드가 실제로 작동합니다.내 문제는functions.php 'naked'에 코드가 포함되어 있다는 것입니다. 즉,후크에 연결된 어떤 함수에도 포함되지 않았습니다.따라서 귀하의 코드는 내 브라우저에 표시된 페이지에 관계없이 홈페이지의 URL을 반환했습니다.WP 후크 (wp_enqueue_scripts)에 연결된 함수 내에서 코드를 이동하면 실제로 표시된 페이지의 URL을 반환했습니다.그 행동의 이유를 알고 있습니까?그것에 대한 새로운 질문을 만들어야 할 수도 있습니다.@Jacob edit 2: OK your code does indeed work. My issue was that I was including the code in functions.php 'naked,' i.e. not in any function that is attached to a hook. So your code was returning the URL of the homepage, regardless of the page that was displayed in my browser. Once I moved the code inside a function--a function attached to a WP hook (wp_enqueue_scripts), it did indeed return the URL of the displayed page. Do you know the reason for that behavior? Maybe I need to create a new question for that.
- 1
- 2017-07-25
- cag8f
-
@ cag8f 코드가functions.php에 "naked"상태이면 $ wp 객체의 모든 속성이 설정되기 전에 코드를 실행하는 것입니다.적절한 후크에 연결된 함수로 래핑하면 Wordpress 코드에서 적절한 지점이 실행될 때까지 실행이 지연됩니다.@cag8f If the code sits "naked" in functions.php then you are running it before all the properties of the $wp object have been set up. When you wrap it in a function attached to an appropriate hook then you are delaying its execution until a suitable point in the Wordpress code run.
- 3
- 2018-04-05
- Andy Macaulay-Brook
-
이 방법은 모두 훌륭하고 WordPress 작업에 대한 훌륭한 아이디어입니다.하지만 필요에 따라`trailingslashit ()`를 추가 할 수 있습니다.These methods are all awesome, and great ideas for working with WordPress. You might add `trailingslashit()` to them though, depending on your needs.
- 0
- 2019-10-17
- Jake
-
- 2018-04-05
아래 코드를 사용하여 WordPress에서 현재 전체 URL을 가져올 수 있습니다.
global $wp; $current_url = home_url(add_query_arg(array(), $wp->request));
검색어 매개 변수를 포함한 전체 경로가 표시됩니다.
You may use the below code to get the whole current URL in WordPress:
global $wp; $current_url = home_url(add_query_arg(array(), $wp->request));
This will show the full path, including query parameters.
-
안녕하세요-https://developer.wordpress.org/reference/functions/add_query_arg/를 살펴보면 코드가 실제로 기존 쿼리 매개 변수를 보존하지 않는다는 것을 알 수 있습니다.Hi - if you have a look at https://developer.wordpress.org/reference/functions/add_query_arg/ you'll see that your code doesn't actually preserve existing query parameters.
- 0
- 2018-04-05
- Andy Macaulay-Brook
-
쿼리 매개 변수를 보존하려면 빈`array ()`를`$ _GET`으로 바꿔야합니다.즉 : `home_url (add_query_arg ($ _ GET,$ wp-> request));`To preserve query parameters you'd need to replace the empty `array()` with `$_GET`. ie: `home_url(add_query_arg($_GET,$wp->request));`
- 5
- 2018-06-14
- Brad Adams
-
WordPress가 하위 디렉토리에 설치되어 있으면 작동하지 않습니다.It won’t work if WordPress is installed in subdirectory
- 0
- 2018-11-26
- ManzoorWani
-
- 2019-10-21
왜 그냥 사용하지 않나요?
get_permalink(get_the_ID());
Why not just use?
get_permalink(get_the_ID());
-
+1 다른 모든 답변은 매우 복잡합니다. 이것은 가장 간단한 해결책입니다.+1 all other answers are much to complicated, this is just the simplest solution
- 2
- 2020-04-16
- Mark
-
이것이 가장 쉬운 방법입니다.+1This is the easiest way. +1
- 1
- 2020-05-23
- Syafiq Freman
-
내 사이트의 블로그 카테고리에서 작동하지 않습니다.doesn't work with blog categories on my site
- 0
- 2020-06-21
- Iggy
-
카테고리 페이지의 경우`get_category_link (get_query_var ( 'cat'));`를 사용합니다.For category pages, use `get_category_link( get_query_var( 'cat' ) );`
- 0
- 2020-06-23
- Dario Zadro
-
- 2018-12-28
다음 코드는 현재 URL을 제공합니다.
global $wp; echo home_url($wp->request)
아래 코드를 사용하여 검색어 매개 변수와 함께 전체 URL을 가져올 수 있습니다.
global $wp; $current_url = home_url(add_query_arg(array($_GET), $wp->request));
검색어 매개 변수를 포함한 전체 경로가 표시됩니다.URL에 이미있는 경우 검색어 매개 변수가 유지됩니다.
The following code will give the current URL:
global $wp; echo home_url($wp->request)
You can use the below code to get the full URL along with query parameters.
global $wp; $current_url = home_url(add_query_arg(array($_GET), $wp->request));
This will show the full path, including query parameters. This will preserve query parameters if already in the URL.
-
이 스 니펫은 현재 URL에서`wp-admin/plugins.php`를 건너 뛰며 루트 경로와 쿼리 문자열 만 있습니다.This snippet skips `wp-admin/plugins.php` in my current URL, it's only the root path and query strings.
- 0
- 2019-08-03
- Ryszard Jędraszyk
-
- 2018-11-29
function current_location() { if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $protocol = 'https://'; } else { $protocol = 'http://'; } return $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; } echo current_location();
function current_location() { if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $protocol = 'https://'; } else { $protocol = 'http://'; } return $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; } echo current_location();
-
이 코드가 문제를 해결하는 방법과 이유를 설명해 주시겠습니까?Can you explain how and why this code solves the question?
- 0
- 2018-11-29
- kero
-
제 생각에는 가장 유연한 솔루션입니다.모든 WP 페이지 (wp-admin,wp-login.php,아카이브 페이지 등)에서 작동합니다.URL 매개 변수가 포함되어 있지 않습니다.In my opinion the most flexible solution. It works on any WP page (even on wp-admin, wp-login.php, archive pages, etc). Just notice, that it does not include any URL params
- 0
- 2019-04-01
- Philipp
-
- 2018-06-11
이것은 이전에 언급 한 개선 된 예시 방식입니다.예쁜 URL이 사용 설정되었을 때 작동하지만 /page-slug/?param=1 과 같은 검색어 매개 변수가 있거나 URL이 전혀 못생긴 경우 삭제됩니다.
다음 예는 두 경우 모두에서 작동합니다.
$query_args = array(); $query = wp_parse_url( $YOUR_URL ); $permalink = get_option( 'permalink_structure' ); if ( empty( $permalink ) ) { $query_args = $query['query']; } echo home_url( add_query_arg( $query_args , $wp->request ) )
This is an improved way of example that mentioned previously. It works when pretty URLs are enabled however it discards if there is any query parameter like /page-slug/?param=1 or URL is ugly at all.
Following example will work on both cases.
$query_args = array(); $query = wp_parse_url( $YOUR_URL ); $permalink = get_option( 'permalink_structure' ); if ( empty( $permalink ) ) { $query_args = $query['query']; } echo home_url( add_query_arg( $query_args , $wp->request ) )
-
- 2019-10-01
어쩌면
wp_guess_url()
이 귀하의필요한 것.버전 2.6.0부터 사용 가능합니다.Maybe
wp_guess_url()
is what you need. Available since version 2.6.0.-
이것은 단지 기본 URL을 추측합니다.프런트 엔드에서는`home_url ()`과 비슷한 효과를냅니다.This just guesses the base URL. On the frontend, you end up with a similar effect to `home_url()`.
- 0
- 2019-10-17
- Jake
-
- 2020-04-04
간단한 작업에 대한 많은 조사 끝에 위의 모든 답변을 혼합하여 사용할 수 있습니다.
function get_wp_current_url(){ global $wp; if('' === get_option('permalink_structure')) return home_url(add_query_arg(array($_GET), $wp->request)); else return home_url(trailingslashit(add_query_arg(array($_GET), $wp->request))); }
끝에 누락 된 슬래시가 없습니다.현재 URL 출력에 대한 질문 ID로 보안 및 항목에 대해서는 신경 쓰지 않습니다.그러나 끝에 #comment와 같은 해시는 PHP에서 찾을 수 없습니다.
After so much research of a simple task, a mix of all answers above works for us:
function get_wp_current_url(){ global $wp; if('' === get_option('permalink_structure')) return home_url(add_query_arg(array($_GET), $wp->request)); else return home_url(trailingslashit(add_query_arg(array($_GET), $wp->request))); }
No missing slash at the end and so on. As the question id about output the current url, this doesnt care about security and stuff. However, hash like #comment at the end cant be found in PHP.
-
- 2020-07-15
이것이 저에게 효과적이었습니다 (URL에 쿼리 문자열도 포함 된 짧고 깨끗한 솔루션) :
$current_url = add_query_arg( $_SERVER['QUERY_STRING'], '', home_url( $wp->request ) );
출력 URL은 다음과 같습니다.
http://sometesturl.test/slug1/slug2?queryParam1=testing&queryParam2=123
솔루션은 여기
에서 가져 왔습니다.This is what worked for me (short and clean solution that includes the query strings in the URL too):
$current_url = add_query_arg( $_SERVER['QUERY_STRING'], '', home_url( $wp->request ) );
The output URL will look like below
http://sometesturl.test/slug1/slug2?queryParam1=testing&queryParam2=123
The solution was taken from here
-
- 2020-07-28
이 질문이 오래된 질문이라는 것을 알고 있지만 제가 알아 차린 한 가지는
get_queried_object()
를 사용하여 언급 된 사람이 없다는 것입니다.현재 사용중인 URL과 관련된 모든 것을 가져 오는 전역 wp 함수입니다.예를 들어 페이지 나 게시물에있는 경우 게시물 개체를 반환합니다.아카이브에있는 경우 게시물 유형 개체를 반환합니다.
WP에는
get_post_type_archive_link
와 같은 많은 도우미 기능이있어 개체 게시물 유형 필드를 제공하고 링크를 다시 가져올 수 있습니다.get_post_type_archive_link(get_queried_object()->name);
요점은 위의 해커 답변에 의존 할 필요가없고 대신 쿼리 된 객체를 사용하여 항상 올바른 URL을 얻을 수 있다는 것입니다.
WP의 기능을 사용하면 항상 올바른 URL을 얻을 수 있으므로 추가 작업없이 다중 사이트 설치에서도 작동합니다.
I realize this is an old question, however one thing I've noticed is no-one mentioned using
get_queried_object()
.It's a global wp function that grabs whatever relates to the current url you're on. So for instance if you're on a page or post, it'll return a post object. If you're on an archive it will return a post type object.
WP also has a bunch of helper functions, like
get_post_type_archive_link
that you can give the objects post type field to and get back its link like soget_post_type_archive_link(get_queried_object()->name);
The point is, you don't need to rely on some of the hackier answers above, and instead use the queried object to always get the correct url.
This will also work for multisite installs with no extra work, as by using wp's functions, you're always getting the correct url.
내 사이트의 페이지가 브라우저에로드 될 때마다 해당 페이지의 URL이 화면에 표시되도록 사용자 지정 PHP 코드를 추가하고 싶습니다.
echoget_permalink ()
를 사용할 수 있지만 모든 페이지에서 작동하지는 않습니다.일부 페이지 (예 : 내 홈페이지 )에는 여러 게시물이 표시되며get_permalink () <를 사용하면/code>이 페이지에서 표시된 페이지의 URL은 반환되지 않습니다 (루프에서 마지막 게시물의 URL을 반환한다고 생각합니다).이러한 페이지에서 URL을 반환하려면 어떻게해야합니까?
루프가 실행되기 전에 실행되는 특정 후크에
get_permalink ()
를 연결할 수 있습니까?아니면 어떻게 든 루프에서 벗어나거나 완료되면 재설정 할 수 있습니까?감사합니다.