【问题标题】:Wordpress ellipsis on title标题上的Wordpress省略号
【发布时间】:2015-03-26 19:42:42
【问题描述】:

我尝试在这篇文章中执行相同的程序:Wordpress Titles: If Longer Than 50 Characters, Show Ellipsis

但一点运气都没有,你能告诉我我做错了什么吗?

这是我的sn-p

function wpfp_list_most_favorited($limit=5) {
global $wpdb;
$query = "SELECT post_id, meta_value, post_status FROM $wpdb->postmeta";
$query .= " LEFT JOIN $wpdb->posts ON post_id=$wpdb->posts.ID";
$query .= " WHERE post_status='publish' AND meta_key='".WPFP_META_KEY."' AND meta_value > 0 ORDER BY ROUND(meta_value) DESC LIMIT 0, $limit";
$results = $wpdb->get_results($query);
if ($results) {
    echo "<ul>";
    foreach ($results as $o):
        $p = get_post($o->post_id);
        $post = mb_strimwidth($p, 0, 20, '...');
        echo "<li>";
        echo "<a href='".get_permalink($o->post_id)."' title='". $p->post_title ."'>" . $post->post_id . "</a> ($o->meta_value)";
        echo "</li>";
    endforeach;
    echo "</ul>";
}

}

【问题讨论】:

  • mb_strimwidth() 是一个字符串函数,你将它应用到一个对象上
  • 那么应该怎么做呢?我可以这样做吗? echo "" 。 mb_strimwidth($p, 0, 20, '...') 。 " ($o->meta_value)";
  • 你的链接表明你想回显帖子ID?所以你可能想删除$post-&gt;post_id 并用mb_strimwidth($p-&gt;post_title,0,20,'...')替换它
  • 还是不行,不知道为什么:(

标签: php wordpress ellipsis


【解决方案1】:

我自己有以下功能,它可以完美运行。

在我的 functions.php 文件的顶部,我使用以下代码:

function truncate($text, $chars = 25) {
   $text = $text." ";
   $text = substr($text,0,$chars);
   $text = substr($text,0,strrpos($text,' '));
   $text = $text."...";
   return $text;
}

之后你可以在任何你想要的地方使用它:

<?php echo truncate($post->post_title, 50); ?>
OR 
<?php echo "<a href='".get_permalink($o->post_id)."' title='". $p->post_title ."'>" . truncate($post->post_title,50) . "</a> ($o->meta_value)"; ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多