$_GET 및 Word Press
간단한 작업을 수행하기 위해 WordPress에 커스텀 php 파일을 추가하고 싶습니다.
지금까지의 내 테마에는index.php
파일:
<a href="myfile.php?size=md">link</a>
php는
<?php echo "hello world"; ?>
<?php echo $_GET["size"]; ?>
<?php echo "hello world"; ?>
링크를 클릭하면 다음과 같이 표시됩니다.
hello world
WordPress가 WordPress를 인수합니까?$_GET
그 기능을 사용하려면 몇 가지 묘기를 부려야 하나요?내가 뭘 잘못하고 있지?
편집:
<?echo "hello world";?>
<?
if (array_key_exists('size', $_GET))
echo $_GET['size'];
?>
<?echo "end";?>
출력:
hello world
솔루션을 참조해 주세요.
URL에 추가하는 커스텀쿼리 변수를 추가하여 조작할 수 있도록 하기 위해 다음과 같이 합니다(예:www.site.com/some_page/?my_var=foo
- 예를 들어 사용add_query_arg()
)에서 사용할 수 있는 퍼블릭쿼리 변수에 추가해야 합니다.WP_Query
이것들은, 다음의 경우에 작성됩니다.WP_Query
인스턴스화되지만 다행히 필터를 통과합니다.query_vars
실제로 사용되기 전에$query_vars
의 특성WP_Query
.
고객님의 경우:
function add_query_vars_filter( $vars ){
$vars[] = "size";
return $vars;
}
add_filter( 'query_vars', 'add_query_vars_filter' );
템플릿 페이지에서 다음과 같이 get methode를 호출합니다.
$size_var = (get_query_var('size')) ? get_query_var('size') : false;
if($size_var){
// etc...
}
상세한 것에 대하여는, Codex:http://codex.wordpress.org/Function_Reference/get_query_var 를 참조해 주세요.
도움이 됐으면 좋겠다!
여기에 아무것도 표시되지 않을지는 모르겠지만, 다음의 에러 리포트를 유효하게 해 주세요.
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
?>
다른 코드보다 먼저 페이지 맨 위에 표시됩니다.
편집:
OP 코멘트로부터:
바보 같은 질문입니다만, 페이지의 캐시된 복사본이 아니라 파일에 대한 최신 변경 결과를 보고 계십니까?'안녕 세상'을 다른 것으로 바꿔라(지푸라기 잡아서 미안한데, 전에도 이런 일이 있었어) – Zenshai
아하하, 변경하던 사람이 올바른 파일을 변경하지 않았습니다.동작하고 있다– marcg
피어 프로그래밍 실패 ^^ – marcgg
그런 짓을 몇 번이나 했는지는 말할 수 없어요.결국 알아낼 수 있었다니 다행이네요.– Zenshai
나는 보통 언어나 환경에 대해 내가 알고 있는 모든 것을 무시하기 시작할 때만 이러한 오류를 발견한다.
이것을 시험해 보세요.
<?echo "hello world";?>
<?
if (array_key_exists('size', $_GET))
echo $_GET['size'];
?>
<?echo "end";?>
보시면
hello worldend
... 즉, 사이즈 GET 파라미터를 설정하지 않습니다.해당 페이지에 접속하기 위해 어떤 URL을 사용하고 있습니까?
워드프레스는 $_GET을 차지하지 않습니다.변수를 올바르게 전달하고 있습니까?
변수를 url로 하드코드하는 경우 변수가 다음 형식인지 확인합니다.
YOUR_SITE_PATH/?variable_name=variable_value
URL 끝의 "/"는 "/" 앞에는 사용하지 마십시오.
당신의 index.php 코드를 볼 수 없지만 변수 "size"가 url에서 수동으로 설정되거나 제출된 양식에서 설정되었는지 확인하십시오.폼을 사용하는 경우는, 반드시 method="GET"를 사용해 주세요.method=를 사용하는 경우"POST"를 선택하면 변수는 $_POST['size']가 됩니다.
이게 도움이 됐으면 좋겠다.
WP Query 객체에 대한 WP의 문서를 보는 것이 좋습니다.
http://codex.wordpress.org/Query_Overview
워드프레스는 get_query_vars를 사용하여 wp_query 객체의 메서드를 사용하여 쿼리를 가져오는 것 같습니다.
http://codex.wordpress.org/Custom_Queries 를 참조해 주세요.
꽤 오래된 우편물이지만 알려주시면 도움이 될 것 같습니다.$_GET, $_POST 및 글로벌 변수 선언 문제를 쉽게 처리할 수 있는 플러그인이 하나 있습니다.http://wordpress.org/extend/plugins/wordpress-registry/
어쩌면 이건 누군가 할 수 있어
htaccess 파일을 확인하고 거기에서 다시 쓰기 규칙을 만드십시오.
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase <<relative_url>>/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . <<relative_url>>/index.php [L]
</IfModule>
# END WordPress
<< relative_url > 를 도메인과 비교하여 상대 URL 로 변경해 주세요.
같은 문제에 직면하여 워드프레스가 goddy 서버에 설치되었습니다.그러나 .htaccess 파일을 변경한 후 문제가 다시 사랑받게 되었습니다.
언급URL : https://stackoverflow.com/questions/1018935/get-and-wordpress
'programing' 카테고리의 다른 글
serde를 사용하여 예쁜 JSON 생성 (0) | 2023.03.12 |
---|---|
javascript는 $.ajax는 함수가 아닙니다.라는 오류를 반환하고 있습니다. (0) | 2023.03.12 |
파라미터를 사용하여 useCallback 응답 (0) | 2023.03.12 |
responseType이 어레이 버퍼인 경우 $http에서 JSON 오류 응답을 읽는 방법 (0) | 2023.03.12 |
반응 - TypeScript 및 기능 컴포넌트와 함께 useRef (0) | 2023.03.07 |