programing

Wordpress - 쿼리 문자열을 슬래시 기반 URL로 전달

sourcejob 2023. 2. 23. 22:45
반응형

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'
   );   
});

인수/파라미터:

  1. 특정 URL 구조에 일치하는 정규 표현("regexp")
  2. 대상으로 하는 템플릿의 개서index.php(외부 링크가 아닌 경우) WordPress의 모든 URL 개서가 WordPress를 통해 이루어지기 때문입니다.
    • 사용하다pagename GET페이지 슬래그로 설정된 파라미터
    • 자리 표시자를 사용하다$matches[indexStartingFrom1]regexp match의 경우 - 정말
      그냥 자리 표시자일 뿐이야!==> 작은 따옴표를 사용하여 이 문자열을 줄 바꿈틀꿈틀!
  3. '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

경우, '어느 정도'를 사용할 ..htaccessrule(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

반응형