$ _GET Ve Wordpress

7 Cevap php

Ben basit bir eylem yapmak için bir wordpress için özel bir php dosyası eklemek istiyorum.

Şimdiye kadar benim tema index.php dosyasında var:

<a href="myfile.php?size=md">link</a>

ve php

<?php echo "hello world"; ?>

<?php echo $_GET["size"]; ?>

<?php echo "hello world"; ?>

Bir kez tıklandığında link, görüntüler:

hello world

Wordpress $ _GET fonksiyonu devralarak ve bazı hileler kullanmak için yapmanız gereken nedir? Ben yanlış ne yapıyorum?

Edit:

<?echo "hello world";?>
<? 
  if (array_key_exists('size', $_GET))
    echo $_GET['size'];
?>
<?echo "end";?>

Çıkışlardan:

hello world

7 Cevap

Bu değil bir şey göstereceğim ama raporlama hata açmayı denemek eğer emin olun:

<?php
   error_reporting(E_ALL);
   ini_set('display_errors', true);
?>

önce başka bir kodu sayfanızın en üstünde.

Edit:

OP yorumlardan:

silly question, but are you sure you are viewing the results of your latest changes to the file and not a cached copy of the page or something? Change "hello world" to something else. (Sorry grasping at straws, but this happened to me before) – Zenshai

ahaha, the person that were doing the changes didn't changed the correct file. It's working now – marcgg

marcgg - eşler arası programlama ^ ^ başarısız

That would be an "or something", can't tell you how many times i've done something like that. Glad you were able to figure it out in the end. – Zenshai

Onlar, bir dil ya da bir ortamı hakkında bildiğim her şeyi meydan başladığınızda ben genellikle bu gibi sadece hataları keşfetmek.

Çözeltisi bakınız:

Ekleyebilir ve kendi özel sorgu ile çalışabilmek için URL'leri append ki vars (örn: "www.site.com/some_page/?my_var=foo" - örneğin add_query_arg kullanılarak ()) bunları eklemeniz gerekir WP_Query mevcut kamu sorgu değişkenleri. WP_Query başlatır, ama aslında WP_Query arasında $ query_vars özelliği doldurmak için kullanılan önce neyse bir filtre 'query_vars' geçirilir zaman bu kadar inşa edilir.

Senin durumunda için:

  function add_query_vars_filter( $vars ){
       $vars[] = "size";
       return $vars;
  }
  add_filter( 'query_vars', 'add_query_vars_filter' );

ve şablon sayfada olduğu gibi get METHODE çağırır:

$size_var = (get_query_var('size')) ? get_query_var('size') : false;
if($size_var){
   // etc...
}

More at the Codex: http://codex.wordpress.org/Function_Reference/get_query_var

Ben yardımcı olur umarım!

Bu deneyin:

<?echo "hello world";?>
<? 
  if (array_key_exists('size', $_GET))
    echo $_GET['size'];
?>
<?echo "end";?>

Eğer görürseniz

hello worldend

Ki ... Eğer boyutu GET parametresini ayarlayarak değil demektir. Ne URL erişimi için kullanıyorsunuz sayfası dedi?

Wordpress üzerinde $ _GET almaz. Eğer doğru değişken geçirmeden emin misiniz?

Bir url değişkeni hardcode, emin bu formun yapmak:

YOUR_SITE_PATH/?variable_name=variable_value

lütfen "/" "?" önce url sonunda

Ben index.php kodunu görmek, ama değişken "boy" ya url veya bir teslim formu elle ayarlanmış olduğundan emin olamaz. Eğer bir form kullanıyorsanız, yöntem = "GET" kullandığınızdan emin olun. Eğer method = "POST" kullanırsanız, o zaman değişken $ _POST ['size'] olacaktır.

Umarım bu yardımcı olur.

Sen WP Sorgu nesne hakkında RP'nin belgelerine bakmak isteyebilirsiniz.

http://codex.wordpress.org/Query_Overview

Wordpress sorguları almak için WP_Query nesne yöntemine get_query_vars kullandığı gibi görünüyor.

You may also take a look at this one: http://codex.wordpress.org/Custom_Queries

Onu bildirmek için iyi bir kullanım olabilir oldukça eski bir yazı olmasına rağmen .... oldukça iyi $ _GET, $ _POST ve küresel değişken bildirim sorunların işlenmesini azaltabilir bir eklenti var. http://wordpress.org/extend/plugins/wordpress-registry/

Bu olabilir biri olabilir

Lütfen htaccess dosyasını kontrol edin. ve orada bir yeniden yazma kuralı var

# 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

Lütfen değiştirin << relative_url >> sizin etki karşılaştırıldığında göreli url ile

Ben aynı sorunla karşı karşıya ve benim wordpress bir godaddy sunucu üzerinde yüklü. Ancak. Htaccess dosyasını değiştirdikten sonra sorun resloved var.