2013-10-20 166 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