0

我有一個foreach語句,遍歷WordPress安裝的所有頁面,並在div中列出它們(使用get_pages()函數)。PHP if語句在foreach檢查WordPress頁面

目前,它看起來像這樣:

<?php 
    $pages = get_pages(); 
    foreach ($pages as $page) { 
    $linkPage = '<a class="order" href="' . get_page_link($page->ID) . '">'; 
    $linkPage .= $page->post_title; 
    $linkPage .= '</a>'; 
    echo $linkPage; 
    } 
?> 

我現在需要做的是增加一個如果插入字符串「當前」後類=「爲了...如果語句鏈接是當前頁面的鏈接

這可能看起來像一個愚蠢的問題,但我是一個PHP經驗豐富的前端開發人員,每次嘗試添加時,如果出現語法錯誤,聲稱有一個意想不到的聲明。

我希望我明確自己。 如果可以提供任何幫助,將非常感謝。

+0

錯誤添加完整的代碼的if語句:) – 2015-01-21 03:57:30

回答

1
<?php 
    //get id of your current page 
    $post_id = $post[0]->ID; 
    $pages = get_pages(); 
    foreach ($pages as $page) { 
    $current = $post_id == $page->ID ? ' current' : ''; 
    $linkPage = '<a class="order '.$current.'" href="' . get_page_link($page->ID) . '">'; 
    $linkPage .= $page->post_title; 
    $linkPage .= '</a>'; 
    echo $linkPage; 
    } 
?> 

檢查這個,我不知道,如果$post_id = $post[0]->ID您在wp版本的作品,但如果語句的邏輯是正確的,並會工作。如果出現錯誤,請嘗試回顯$post_id$current

+0

謝謝,我不得不這樣做的唯一的事情就是改變* $ post_id = $ post [0] - > ID; *用於* $ post_id = $ post-> ID; *,並且工作完美。 – NicolasJEngler 2015-01-21 11:33:16

1

試試這個代碼:

<?php 
//get id of your current page 
$post_id = get_the_ID(); 
$pages = get_pages(); 
foreach ($pages as $page) { 
//Condition statement to add the class current 
$current = $post_id == $page->ID ? 'current' : ''; 
$linkPage = '<a class="order '.$current.'" href="' . get_page_link( $page->ID) . '">'; 
$linkPage .= $page->post_title; 
$linkPage .= '</a> <br> '; 
echo $linkPage; 
} 
?> 

希望這將幫助你...