2013-10-20 265 views
0

(序言:是新來的PHP,從C#的背景,我已經習慣來非常乾淨的代碼我目前正在對我自己的WordPress網站,其中有一個購買的主題。)PHP混合HTML和代碼

我在WordPress主題已經看到這種類型的代碼:

<a href="<?php echo esc_url(home_url('/')); ?>"><img src="<?php echo esc_url($logo); ?>" alt="<?php echo esc_attr(get_bloginfo('name')); ?>" id="logo"/></a> 

我覺得這是很辛苦比起重構閱讀:

<?php 
      echo '<a href="'; 
      echo esc_url(home_url('/')); 
      echo "><img src="; 
      echo esc_url($logo); 
      echo " alt="; 
      echo esc_attr(get_bloginfo('name')); 
      echo '" id="logo"/></a>' 
?> 

但是這是最簡單的遠:

<?php 
     get_anchor($url, $imgsource, $alt, $id); 
?> 

get_anchor是一個自定義函數,它會根據參數配置一個錨點。

但是我當然不是第一個想到這個的。是否有任何現有的庫,有一組函數返回正確格式化的HTML,如本例中所示?有什麼我失蹤?

+1

'有什麼現有的庫,這樣做?' - 做什麼? –

+1

WordPress有一個非常廣泛的API,有很多主題沒有充分利用它。 –

+1

對於附件鏈接,請使用http://codex.wordpress。org/Function_Reference/wp_get_attachment_link –

回答

1

我已經寫了返回基於純PHP輸出一個HTML標記的函數:

function tag($name, $attrs, $content) { 
    $res = ''; 
    $res .= '<' . $name; 
    foreach($attrs as $key => $val) 
     $res .= ' ' . $key . '="' . $val . '"'; 

    $res .= isset($content) ? '>' . $content . '</'.$name.'>' : ' />'; 

    return $res; 
} 
  • $name是標記名(例如a
  • $attrs是一個鍵,值陣列屬性(例如array('href','http://google.com/')
  • $content是標記的內容/主體(其他元素或文本)

例基本使用:

echo tag('a', array('href' => 'http://google.com/'),'Google'); 

實例與多個孩子嵌套使用:

echo tag('ul',array(), 
     tag('li',array(),'one') . 
     tag('li',array(),'two') . 
     tag('li',array(),'three') 
    ); 
+0

非常好。我會試試這個。 –

0

我相信你在找什麼像Smarty模板。他們是最簡潔的方式來顯示信息,因爲代碼和視圖是完全分開的

但是Wordpress不使用它們,我不知道爲什麼,實際上可能是因爲大多數PHP程序員都不習慣它。

+0

謝謝,我會檢查出來。 –

0

大多數PHP框架提供了這樣的庫來通過參數化函數輸出html,如果框架遵循MVC模式,則大多數是視圖層的一部分。

,但如果你不使用任何框架,那麼你可以使用這些庫從這裏

PHP Pear Packages

以及在特定的建築形式看

HTML_QuickForm2