Я пытаюсь создать гиперссылку на моей домашней странице для последнего сообщения, используя и in_category()
. Сайт не настроен, как выдержки из блога, а пользовательские поля загружаются в настраиваемые шаблоны страниц, используя категории с динамическим #id на основе slug, и все это отлично работает. Итак, я пытаюсь получить категорию последней публикации, а затем создаю ссылку для нее с правильным URL-адресом на основе категории, так как я могу отличить, на какой странице они находятся.WordPress: использование if else с wp_get_recent_posts
Я протестировал структуру генерации ссылок за пределами if if, и она отлично работает. Но он не работает внутри операторов if else: echo $before . $homeURL . "audio/" . "#" . $slug . $after;
Я не программист, так что это может быть глупая ошибка. Одна вещь, которую я заметил, заключается в том, что если я печатаю массив $recent
, в нем, по-видимому, нет категории или номера категории, даже если я укажу категории в массиве $args
, используя 'category' => '2,3,4,5'
.
мне удалось решить эту проблему благодаря помощи кого-то на 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