Wordpress - 쿼리 문자열을 슬래시 기반 URL로 전달
워드프레스 페이지에 파라미터를 전달하려고 합니다.쿼리 문자열로 전달하고 싶지 않습니다.슬래시 기반의 URL로 전달하고 싶습니다.
예:
http://localhost/mysite/pagename?user=myname
안으로
http://localhost/mysite/pagename/myname
이 작업을 수행하려면 어떻게 해야 합니까?functions.php
워드프레스 커스텀 테마로 파일을 작성하시겠습니까?
이 작업은 불필요해 보입니다.규칙을 추가하기 위해서라기보다는 재작성 규칙을 삭제하기 위해서입니다.
사용.functions.php
WordPress 테마 기능 사용(functions.php
), 슬래시 베이스의 url을 전달하려면 , 다음의 2개의 순서가 있습니다.GET
페이지 파라미터는 리라이트 규칙 변경 후 다음과 같이 설정합니다.flush rewrite rules == permalink 설정을 admin에 다시 저장합니다!
순서 1 - add_rewrite_rule(...)
리라이트 대상 장소나 페이지별 타겟팅 방법에 대한 설명서가 명확하지 않기 때문에 작업을 시도할 때 다소 혼란스러울 수 있습니다.그리고 그런 걸 바꿀 때마다 다시 쓰는 규칙을 바꿔야 한다는 중요한 주의사항이 하나 있어요.
이것으로 충분합니다(WP 4.3.3).
add_action('init', function(){
add_rewrite_rule(
'^yourPageSlug/([^/]+)([/]?)(.*)',
//!IMPORTANT! THIS MUST BE IN SINGLE QUOTES!:
'index.php?pagename=yourPageSlug&user=$matches[1]',
'top'
);
});
인수/파라미터:
- 특정 URL 구조에 일치하는 정규 표현("regexp")
- 대상으로 하는 템플릿의 개서
index.php
(외부 링크가 아닌 경우) WordPress의 모든 URL 개서가 WordPress를 통해 이루어지기 때문입니다.- 사용하다
pagename
GET
페이지 슬래그로 설정된 파라미터 - 자리 표시자를 사용하다
$matches[indexStartingFrom1]
regexp match의 경우 - 정말
그냥 자리 표시자일 뿐이야!==> 작은 따옴표를 사용하여 이 문자열을 줄 바꿈틀꿈틀!
- 사용하다
-
'top' 또는 'bottom'입니다.'top'은 WordPress의 기존 규칙보다 우선하며, 여기서 'bottom'은 다른 모든 규칙이 일치하는지 먼저 확인합니다.기본값: "하단"
순서 2 - 추가
위 단계는 목표물일 뿐 변수 자체를 넘기는 게 아니라...
WordPress는 이 모든 데이터를 클리어하기 때문에$_GET
파라미터는 "있는 그대로" 버려야 합니다(적합한 파라미터를 찾을 수 없기 때문에). WordPress에 커스텀을 추가하여 그것들을 사용하고 싶다고 알려야 합니다.
다음 방법으로도 그것들을 회수할 수 없습니다.$_GET
하지만, 초글로벌,
우리는 그것들을 사용할 수 있을 것이다.
WordPress에게 그것들을 사용하고 싶다고 말합니다.GET
매개 변수, 필터
add_filter('query_vars', function( $vars ){
$vars[] = 'pagename';
$vars[] = 'user';
return $vars;
});
마지막 단계:
플래시 다시 쓰기 규칙 == 영구 링크 설정을 다시 저장하십시오!
사용.
후, 「」의 값을 합니다.GET
"user" 추가:
get_query_var( 'user' )
을 사용..htaccess
경우, '어느 정도'를 사용할 ..htaccess
rule(reducering, rewrite base가 되어 있는지 확인)
RewriteRule ^pagename/([^/]+)$ pagename?user=$1
자세한 튜토리얼은 다음과 같습니다.http://www.rlmseo.com/blog/passing-get-query-string-parameters-in-wordpress-url/
몇개서 규칙을 후 WordPress를 통해 합니다.add_filter('rewrite_rules_array', 'my_rewrite_rules');
이 , 은 「」, 「」, 「URL」, 「URL」이 .http://localhost/mysite/pagename/user/myname
- /user/ (쿼리 변수의 이름)는 아직 포함되어 있습니다.
언급URL : https://stackoverflow.com/questions/29076665/wordpress-pass-query-string-as-slash-based-url
'programing' 카테고리의 다른 글
단일 파일에 대해 더 예쁜 파일 사용 안 함 (0) | 2023.02.23 |
---|---|
grunt 서버를 사용하여 모든 요청을 루트 URL로 리다이렉트하려면 어떻게 해야 합니까? (0) | 2023.02.23 |
c#에서의 md5(wordpress) 비밀번호 암호화 (0) | 2023.02.23 |
비동기 대기가 React setState와 연동되는 이유는 무엇입니까? (0) | 2023.02.23 |
각도 소독/ng-bind-html이 작동하지 않나요? (0) | 2023.02.23 |