我想在我的主頁上生成一個超鏈接使用最新帖子wp_get_recent_posts()
和in_category()
。該網站沒有像博客文章摘錄那樣安裝,自定義字段正在使用基於slug的動態#id類別加載到自定義頁面模板中,並且所有工作都正常。所以,我試圖獲取最近發佈的帖子的類別,然後使用基於類別的正確URL生成鏈接,因爲這就是我可以區分他們所在的頁面的方式。WordPress的:使用如果其他與wp_get_recent_posts
我測試了if else之外的鏈接生成結構,它工作正常。但它不在if語句中工作:echo $before . $homeURL . "audio/" . "#" . $slug . $after;
我不是程序員,所以它可能是一個愚蠢的錯誤。我注意到的一件事是,如果我打印陣列$recent
,它似乎沒有類別名稱或類別編號,即使我使用'category' => '2,3,4,5'
指定$args
陣列中的類別。
我設法感謝工作了這一點的人WordPress.org上的幫助,所以現在下面的代碼是正常使用has_category()
功能。
<?php
$args = array('numberposts' => '1', 'offset' => '0', 'orderby' => 'post_date', 'order' => 'DESC', 'post_status' => 'publish');
$recent_posts = wp_get_recent_posts($args);
$home = home_url('/');
$homeURL = esc_url($home);
$before = '<a href="';
$after = '">dive in</a>';
foreach($recent_posts as $recent){
$slug = basename(get_permalink($recent["ID"]));
// if post is audio
if (has_category('audioz', $recent["ID"])) {
echo $before . $homeURL . "audio/" . "#" . $slug . $after;
}
// else if post is video
else if (has_category('videoz', $recent["ID"])) {
echo $before . $homeURL . "videos/" . "#" . $slug . $after;
}
// else if post is article
else if (has_category('articlez', $recent["ID"])) {
echo $before . $homeURL . "article/" . "#" . $slug . $after;
}
// else if post is zazzle link
else if (has_category('zazzle', $recent["ID"])) {
echo $before . $homeURL . "store/" . "#" . $slug . $after;
}
}
?>
是的,我有這樣的,可是試了一下沒有在上面的例子中。我剛剛使用'$ recent'更改了我的代碼,並嘗試了'is_category'和'in_category',但都沒有成功。 – liquidRock
我改變了我原來的帖子,以反映你仍然無法使用的建議。 – liquidRock