我想展示广告,如果title == MainPage或者category == Portal。 我正在尝试创建一个if,elseif,else语句,但我不确定在哪里放置foreach循环。 这是我的代码:
<?php
$id = $wgTitle->getArticleID();
$dbr = wfGetDB( DB_SLAVE );
$result = $dbr->query("SELECT page_id FROM wiki_page ORDER BY page_latest");
while( $row = $dbr->fetchObject( $result ) ) {
foreach($row as $page_id){$m_array = array($page_id);}
}
$title = Title::newFromText( $wgRequest->getVal( 'title' ) );
$categories = $title->getParentCategories();
if(in_array($id, $m_array)){
if($wgTitle == "Main Page"){}
foreach ($categories as $category => $article_title){
elseif($category == 'Category:Portal'){ echo "no ads";}
}
else{echo 'show ads';}
}
?>
我不能把elseif放在foreach循环中但是如何指定$ category子句?如果我将整个代码包装在foreach循环中,那么广告会多次显示,因为某些页面有多个类别。
(mediawiki网站) 感谢
答案 0 :(得分:0)
使用布尔值存储测试结果。考虑一下:
$ok = $title != 'Main Page';
foreach($categories as $c => $at) $ok = $ok && $c != 'Category:Portal';
if($ok) echo "show ads";
else echo "no ads";