2013-05-08 3 views
0

특정 페이지에서 GET 변수를 추가하여 현재 페이지에 링크하는 a 요소를 출력하려는 ​​페이지가 있습니다. showall 1은 그냥 끝 부분에있는 showall 변수없이 현재 페이지의 URL을 반환하는 경우URL에 변수가 이미 있는지 여부를 모른 채 URL에 GET 변수 추가하기

<?php 
    $Path=$_SERVER['REQUEST_URI']; 
    $URI=home_url().$Path; 
    if($_GET['showall']==1) 
     { 
     $URI = strtok($URI, '?'); //This removes the GET variables 
     $showWhat = "Show 12 per Page"; 
     } 
    else 
     { 
     $URI .= '?' . http_build_query(array('showall'=>1)); 
     $showWhat="Show All"; 
     } 
?> 

그래서 그것이 무엇 것은 : 여기 내 코드입니다. 1이 아니면 URL 끝에 ?showall=1을 추가합니다.

URL에 다른 GET 변수가없는 경우 효과적입니다. 이 경우 나는 URL과 같이 얻을 : 변수 사이의 누락 &amp;이있는 한

http://example.com?orderby=price?showall=1

이 명확하게 작동하지 않습니다.

이미 GET 변수가있는 경우 작동하도록 코드를 수정할 수 있습니까?

showall = 1 인 경우 showall을 제외한 다른 GET 변수를 사용하여 URL을 출력하고 싶습니다. 예 : http://example.com?orderby=price?. 나는 단지 내가 사용했던 것을 사용하여 모든 GET 변수를 제거 할 것이라고 믿는다.

답변

1

(이 그렇게 home_url()가 사용되는 워드 프레스 사이트)에 대해 어떻게 :

$URI .= '?' . http_build_query(array_merge($_GET,array('showall'=>1)));

LE : 미정 :

if($_GET['showall']==1) { 
    $get = $_GET; 
    unset($get['showall']);//since you don't want this anymore 
    $URI = home_url('your-path-here') . '?'. http_build_query($get); 
} 

주의 사항, home_url()이 걸릴 수 있습니다 uri 인수이므로 home_url() 함수에 상대 URL을 전달하십시오 (예 : home_url('plugins/superplugin/the-page.php')).).

+0

대단한데 문제가 있다면 showall = 1이면 모든 GET이 URL에서 제거됩니다. – harryg

+0

@harryg - 내 업데이트 된 답변을 참조하십시오. 아마도 도움이 될 것입니다. – Twisted1919

+0

이 제대로 작동합니다. 내 dev 컴퓨터로 돌아와보고 할 때 나는 테스트 할 것이다. 많은 감사합니다 – harryg

관련 문제