2010-11-21 25 views
0

Wordpress için yazarken, basit bir PHP mantık ifadesinin nasıl yapıldığını bilmiyorum.Dizin sayfasına kod eklemek için temel bir ifadeyi nasıl yazarım?

Çok basit bir proje için index.php sayfasında sıralanmamış bir liste eklemeye çalışıyorum.

 <?php 
     $index = $_SERVER['REQUEST_URI']; 
     if ($index == "/") { 
     ?><ul id="links"> 
      <li><a href="http://facebook.com" class="facebook">Facebook</a></li> 
      <li><a href="example.php">Example</a></li> 
      <li><a href="test.php">Test</a></li> 
      <li><a href="page.php">Page</a></li> 
     </ul> 
     <?php } ?> 

Bu index.php gerçek URI yanı sıra index.php'de olmadan boş bir sonek ile biten dizin sayfaları için çalışması gereken biliyoruz: İşte kullanmaya çalışıyorum kod örneği verilmiştir. Bu kodu doğru çalışmak için nasıl yazabilirim?

cevap

3

Böyle gerçek sayfa adını almak için basename() fonksiyonunu kullanmak gerekir:

<?php 
    $page = basename($_SERVER['REQUEST_URI']); 
    if ($page == 'index.php' || $page == "/" || $page == '') { 
    ?><ul id="links"> 
     <li><a href="http://facebook.com" class="facebook">Facebook</a></li> 
     <li><a href="example.php">Example</a></li> 
     <li><a href="test.php">Test</a></li> 
     <li><a href="page.php">Page</a></li> 
    </ul> 
    <?php } ?> 
+0

Bu sayfa index.php ile bittiğinde harika çalışıyor. Bununla birlikte, sadece bir iz bırakan eğik çizgi ile düzgün çalışıyor gibi görünmüyor. En iyi PHP kodunuzu kopyaladım ve yapıştırdım, teklifleri tutarlı hale getirdim, ancak sonuçta kesik çizgi ile doğru sonucu alamıyorum. – micah

+0

var_dump ne zaman $ sayfa eşittir? –

+0

Hey Mark, değişken beyanının altında var_dump'ı dizin sayfasındaki PHP koduna ekledim. İzleyen eğik çizgiden önce alt dizinin adını geri gönderir (bu projenin yayınlanmadan önce bir alt dizinindeyim). Yani şimdi neden butonları göstermediğini anlıyorum ama sorunu nasıl çözeceğimi bilmiyorum! – micah

0

O çalışır ancak kesikler aşağıdaki adlı komut dosyası kullanırsanız.

<?php 
    $page = basename($_SERVER['SCRIPT_NAME']); 
    if ($page == 'index.php' || $page == "/" || $page == '') 
    { ?> 
    Hi This should show up. 
    <?php }?> 
İlgili konular