在同一页面的不同摘录中不同的“阅读更多”

时间:2015-12-18 14:06:19

标签: php wordpress

我希望在我的主页上有两个不同的摘录,一个用于循环内的帖子,另一个用于发布的最新帖子,在循环之外。

我设法在这个循环之外的最新帖子中添加摘录

<?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;
}

这是实现这个目的的错误方法还是我在代码中犯了一些错误?

0 个答案:

没有答案