我希望在我的主页上有两个不同的摘录,一个用于循环内的帖子,另一个用于发布的最新帖子,在循环之外。
我设法在这个循环之外的最新帖子中添加摘录
<?php $postslist = get_posts('numberposts=1&order=DESC&orderby=post_date');
foreach ($postslist as $post) :
setup_postdata($post); ?>
<?php wp_latest_excerpt('wp_latest', 'excerpt_more_latest'); ?>
<?php endforeach; ?>
虽然循环内帖子的摘录是
<?php wp_excerpt('wp_index'); ?>
由于某些原因,我能够为我的两个摘录设置不同的摘录长度,但“更多”保持不变。 (“更多”都有类.view-article
)
我以为我可以创建一个具有不同“更多”功能的另一个摘录,但它不起作用,这里是我的2个不同的摘录和更多的功能。
长度
function wp_index($length)
{
return 21;
}
function wp_latest($length)
{
return 18;
}
对于“更多”
function view_article($more)
{
return '... </br><a class="view-article" href="' . get_permalink($post->ID) . '">' . __('Continue Reading', '') . '</a>';
}
function latest_view_article($more)
{
return '... </br><a class="view-latest-article" href="' . get_permalink($post->ID) . '">' . __('Continue Reading', '') . '</a>';
}
add_filter('excerpt_more_latest', 'latest_view_article');
add_filter('excerpt_more', 'view_article');
最后摘录
function wp_latest_excerpt($length_callback = '', $more_callback = '')
{
if (function_exists($length_callback)) {
add_filter('excerpt_length', $length_callback);
}
if (function_exists($more_callback)) {
add_filter('excerpt_more_latest', $more_callback);
}
$output = get_the_excerpt();
$output = apply_filters('wptexturize', $output);
$output = apply_filters('convert_chars', $output);
$output = '<p>' . $output . '</p>';
echo $output;
}
function wp_excerpt($length_callback = '', $more_callback = '')
{
if (function_exists($length_callback)) {
add_filter('excerpt_length', $length_callback);
}
if (function_exists($more_callback)) {
add_filter('excerpt_more', $more_callback);
}
$output = get_the_excerpt();
$output = apply_filters('wptexturize', $output);
$output = apply_filters('convert_chars', $output);
$output = '<p>' . $output . '</p>';
echo $output;
}
这是实现这个目的的错误方法还是我在代码中犯了一些错误?