我的博客使用Processwire。
我知道我可以通过使用
调用博客发布循环<?php newsList(); ?>
在index.php,但我不知道如何实现html代码在index.php到我的blog_functions.php。
有办法吗?
<div class="blog_item">
<div class="clearfix"></div>
<div class="oi_blog_post_meta">
<div class="oi_blog_post_date">
<div class="oi_date_d colored">13 July
<span class="oi_year">2014</span>
</div>
<div class="oi_post_cat">
Java Script</div>
</div>
<h5 class="oi_blog_post_title">
<a href="quisque-consequat-felis-id-lorem-congue/index.html">Quisque Consequat Felis Lorem Congue </a>
</h5>
<div class="oi_post_descr_preview">
Proin sed odio eu turpis sagittis pretium a et metus. Quisque consequat tellus at dolor adipiscing viverra. Cras ligula lectus, viverra tempor ultrices sed, rhoncus quis nulla. Fusce adipiscing, velit nec sodales laoreet,</div>
</div>
<div class="oi_post_meta_data_holder">
<a class="oi_image_link" href="quisque-consequat-felis-id-lorem-congue/index.html">
<img class="img-responsive" src="
<?=$config->urls->templates;?>assets/wp-content//uploads/2014/07/photography-movement-13-600x600.jpg" alt="Quisque Consequat Felis Lorem Congue" />
</a>
<div class="oi_post_tringle"></div>
</div>
<div class="clearfix"></div>
</div>
</div>
这里是我的blog_functions。php
function newsList(){
// Grab the page name from the url
$thisCategory = wire("page")->name;
// If the category is not called "news" then output the category name as a selector for the find.
if($thisCategory !="news") {
$category = "article_category.name=" . $thisCategory;
}
// Get the news posts - limited to ten for later pagination
$newsposts = wire("pages")->find("parent=/news-articles/, $category, template=TUT_news, limit=10");
$out =" ";
//Loop through the pages
foreach($newsposts as $newspost){
$out .="<div class='clearfix'>";
if($newspost->article_thumbnails){
$out .="<a href='{$newspost->article_thumbnails->url}' class=''>";
$out .="<img class='align_left' src='{$newspost->article_thumbnails->getThumb(listingthumb)}'>";
$out .="</a>";
}
$out .="<a href='{$newspost->url}'><h3>{$newspost->title}</h3></a>";
$out .="<p>{$newspost->article_introtext}</p>";
$out .="</div>";
}
// Pagination
$out .="<div class='pagination'>";
$out .= $newsposts->renderPager(array(
'nextItemLabel' => "Next",
'previousItemLabel' => "Prev",
'listMarkup' => "<ul>{out}</ul>",
'itemMarkup' => "<li>{out}</li>",
'linkMarkup' => "<a href='{url}'>{out}</a>"
));
$out .="</div>";
echo $out;
}
最好的方法是使用MVC模式。
但是你可以编辑index。php,在这里写上HTML
的例子:
<html>
<body>
<h1>Test page</h1>
<?php newsList(); ?>
</body>
</html>
注意函数newlist()已经将html输出到标准输出。使用MVC模式和一些视图模板系统(例如TWIG)可以给你更多的可能性来处理从控制器传递给视图的数据。
回显PHP脚本中的HTML部分,浏览器将像往常一样解析它。
<?php
echo "<html>
put html contents here.
</html>";
?>
当HTML和PHP混合使用时,注意" and "
我被告知这样做的方式(我的全职开发人员的朋友告诉我)实际上是关闭php标签并将原始html放在中间,像这样:
<?php if($i==true){ ?> <p>Html goes here :)</p> <?php } ?>
如果你想打印更多的php到html中,你可以简单地添加更多的<?php ?>
标签,并在那里添加任何你需要的!
<?php if($i==true){ ?> <p>My name is <?php echo $nameVariable; ?>! :)</p> <?php } ?>
下面是另一个例子(更大的代码块):
<?php
$subjects = show_subjects("all");
if($subjects == ""){
echo "<h4 style='text-align: center'>No subjects were found</h4>";
// echo "<tr class='subject-row'><td id='name'>$items['name'] </td><td id='owner-username'>$items['username']</td><td><a href='#' class='edit-subject' id='"$items['subject_ID']'"> Edit</a> • <a href='#' class='delete-subject' id='"$items['subject_ID']'"> Delete</a></td></tr>";
}else{
foreach($subjects as $items){
?>
<tr class='subject-row'><td id='name'><?php echo $items['name']; ?></td><td id='owner-username'><?php echo $items['username']; ?></td><td><a href='#' class='edit-subject' id='<?php echo $items['subject_ID']; ?>'> Edit</a> • <a href='#' class='delete-subject' id='<?php echo $items['subject_ID']; ?>'> Delete</a></td></tr>
<?php
}
}
?>
或者您可以使用PHP内置的EOT
函数
$variable
echo <<<EOT
<h1>{$variable}</h1>
<div class='div'>More html here</div>
EOT;