2011-08-23 182 views
0

我想你回顧我的示例WordPress主題index.php代碼。WordPress的主題

<?php 
/* 
Template name: Homepage 
*/ 
get_header(); 
?> 
<?php 

    if(isset($_GET['action'])): 
     $action = $_GET['action']; 
     switch($action){ 
      case "sendmail": include("sendmail.php"); break; 
      case "mailsent" : include("thanks.php"); break; 
     } 
    else: 
?> 
    <!-------// Begin Content ----------> 
    <?php if (have_posts()): ?> 
    <?php while(have_posts()): the_post(); ?> 
     <tr> 
      <td class="contentarea"> 
       <h1><?php the_title(); ?></h1> 
       <p> <?php the_content(); ?></p> 
      </td> 
     </tr> 
    <?php endwhile; ?> 
    <?php else: ?> 
     <tr> 
      <td class="contentarea"> 
       <h1>Page not Found!</h1> 
       <p>Sorry, you are looking a page that is not here! </p> 
       <?php get_search_form(); ?> 
      </td> 
     </tr> 
    <?php endif; ?> 
     <!-------// End Content ----------> 
     <tr> 
     <!--begin contact form --> 
      <td class="contactarea" height="200"> 
       <?php include("contact_area.php"); ?> 
      </td> 
     <!--end contact form -->  
     </tr> 
<?php endif;?> 
<?php get_footer(); ? 

我想談談我的,如果上面的功能類似,但我不知道如何聲明:

 if(action_is_set()){ 
      then_do_the_action(); 
     }else { 
      //begin content..etc. 
     } 

有沒有的我上面的代碼??我還是一個更好的結構學習PHP和Wordpress。 請幫助。謝謝!!。

+0

從mythemeshop購買任何主題都可享受六折優惠。訪問http://tech-papers.org/mythemeshop-coupon-code/ –

回答

1

我不覺得這將是值得努力創建一個函數action_is_set()。

你最終會得到:

function action_is_set() { 
    return isset($_GET['action']); 
} 

移動交換機裏面的functions.php的功能可能是有益的。然而。

這看起來類似於:

function do_action() { 
    switch($_GET['action']) { 
     case 'sendmail': 
      include('sendmail.php'); 
      break; 
    } 
} 

或者您也可以通過移動內容部分到一個新的使這個當前頁面完全模塊化的包含文件:

<?php 
get_header(); 

switch($_GET['action']) { 
    case 'sendmail': 
     include('sendmail.php'); 
     break; 
    case 'mailsent': 
     include('thanks.php'); 
     break; 
    default: 
     include('content.php'); 
} 

get_footer(); 
?> 

我不知道這怎麼符合WordPress的最佳實踐,但是在交換機中設置默認情況是一種很好的做法,特別是在無法執行任何操作的情況下,例如他們去了yourdomain.com/?action=blah

經驗法則:永遠不要期望他們會按照預期使用它;總是假定有人會試圖破壞你的代碼。

1

您可以在主題下的functions.php中編寫函數。

+0

謝謝,請問如何在functions.php中編寫函數? ?:-( – Dan

+0

@Dan這與代碼正常函數沒什麼不同,你可以在functions.php中定義一些函數,並且可以在你的模板php文件中使用它們,並且你可以使用add_action/add_filter來改變wordpress的動作像the_content這樣的函數。 – xdazz