【发布时间】:2016-01-25 11:28:43
【问题描述】:
我正在使用 Wordpress 插件将类别列表和 4 个帖子添加到网站的主页。
我正在尝试为每个类别添加标题和“更多”链接,但我不能完全正确。
下面是插件代码,我的新部分在底部附近的 cmets 中突出显示。目前,它只显示前 2 个类别的标题,然后再次重复相同的标题及其链接,即使类别不同。
<?php
global $post;
// default attributes for shortcode
$shortcode_default_attrs = array(
'author' => '',
'show' => 5,
'excerpt' => 'false',
'thumbnail' => 'false',
'post_type' => 'post',
'category' => '',
'tag' => ''
);
// overrides default attributes set above and separates into individual varaibles.
if(!empty($inserted_attrs)) {
extract(shortcode_atts( $shortcode_default_attrs, $inserted_attrs ));
}
if(!empty($author)) {
// checks if there are multiple authors set.
$author_has_comma = strpos($author, ',');
if($author_has_comma === false) {
// gets the author data for a single author.
$author_data = get_user_by( 'login', $author );
if(!empty( $author_data)) {
$post_args = array(
'author' => $author_data->ID,
'posts_per_page' => $show,
'post_type' => $post_type,
'category_name' => $category,
'tag' => $tag,
);
}
} else {
// gets the author data for multiple authors.
$authors = explode(',', $author);
$author_data = '';
foreach($authors as $author_login) {
$author_user = get_user_by('login', $author_login);
$author_data .= $author_user->ID . ',';
}
$post_args = array(
'author' => $author_data,
'posts_per_page' => $show,
'post_type' => $post_type,
'category_name' => $category,
'tag' => $tag,
);
}
} elseif (empty($author)) {
$post_args = array(
'author' => $author,
'posts_per_page' => $show,
'post_type' => $post_type,
'category_name' => $category,
'tag' => $tag,
);
}
// gets posts form database
$post_query = new WP_Query( $post_args );
// displays posts
if($post_query) {
$data = '';
$data .= '<div class="recent_post_by_cc"><ul>';
while ($post_query->have_posts()) : $post_query->the_post();
$data .= '<li>';
// displays a link to the post, using the post title
$data .= '<a href="' . get_permalink() . '" title="' . get_the_title() . '">';
$data .= get_the_title();
$data .= '</a>';
// display a linked featured image if post has
if($thumbnail == 'true') {
$data .= '<div class="cc_left">';
if(has_post_thumbnail()) {
$data .= '<a href="' . get_permalink() . '" title="' . get_the_title() . '">';
$data .= get_the_post_thumbnail(get_the_id(), 'thumbnail');
$data .= '</a>';
}
$data .= '</div>';
}
// displays the post excerpt if "excerpt" has been set to true
if($excerpt == 'true') {
$data .= '<p>' . get_the_excerpt() . '</p>';
}
$data .= '<div style="clear: both;"></div></li>';
endwhile;
// =================================================
// Start of my added section
// =================================================
$data .= '<div class="more-home-link">';
$category = get_the_category();
$data .= '<a href="'.get_category_link($category[0]->cat_ID).'">More</a>';
$data .= '</div>';
$data .= '<div class="home-title">';
$categories = get_the_category();
echo '<h2><a href="'.$cat_link.'">'.$categories[0]->cat_name.'</a></h2>' ;
$data .= '</div>';
// =================================================
// End of my added section
// =================================================
$data .='</div>';
$data .= '</ul>';
}
wp_reset_postdata();
echo $data;
【问题讨论】:
-
请更详细地解释您想要实现的目标。您想添加
the_title和more_links但添加到什么:添加到一个类别或添加到所有类别?您想要打印类别链接的位置 - 在每个帖子之后(因为不同的帖子可以附加到不同的类别),或者在打印所有帖子之后。因为现在您从上次打印的帖子中获取类别,并且只打印其中的第一个$categories[0] -
我想为每个类别添加类别标题和更多链接。我想显示类别标题、带有帖子标题和特色图片的 4 个最新帖子,然后显示更多链接,将您带到类别页面。我想对每个类别都这样做。