我需要一些帮助,为WordPress的Classipress主题为XTremeCarousel插件调整一点PHP . 如果 Headers 大于或等于14个字符,则下面的代码会截断 Headers . 我需要它为类别和用户名做同样的事情,所以它不会将它们包装到另一个像 . 如果它们中的任何一个被包裹,它会将“查看更多”按钮向下推到它们所包含的div下面 . 如果需要,我可以发布链接以查看问题 . 这是相关代码的一部分,您可以看到第二行是 Headers 被抓取和截断的位置 . 我将尝试自己重写它,但我愿意接受建议,因为我认为我没有必要的技能去做... lol
最后,除了价格之外的每一行都需要被截断为14个字符,因此它们不会将信息包装起来 .
<div style="margin-top:16px"></div>
<a id="rb_title"><?php if ( mb_strlen(get_the_title()) >= 14 ) echo mb_substr( get_the_title(), 0, 14 ).'...'; else the_title(); ?></a>
<p id="rb_xtrmcarousel">
Under: <?php if ( get_the_category() ) the_category(', '); else echo get_the_term_list( $post->ID, APP_TAX_CAT, '', ', ', '' ); ?>
By: <span class="owner"><?php the_author_posts_link(); ?></span>
<span class="rb_price">Price: <?php if ( get_post_meta( $post->ID, 'price', true ) ) cp_get_price_legacy($post->ID); else cp_get_price( $post->ID, 'cp_price' ); ?></span>
</p>
我认为这对作者的名字有效,尽管它没有 grab the_author_posts_link .
By: <span class="owner"><?php if ( mb_strlen(get_the_author_nickname()) >= 14 ) echo mb_substr( get_the_author_nickname(), 0, 14 ).'...'; ?><?php if ( mb_strlen(get_the_author_nickname()) <= 14 ) echo mb_substr( get_the_author_nickname(), 0, 14 ).''; ?></span>
每当我尝试重写类别行时,它最终都是空白的,因为我不知道我在做什么...... :)但是,我可以让它返回类别名称并且它已链接但是它没有明显截断:
Under: <?php echo get_the_term_list( $post->ID, APP_TAX_CAT, '', ', ', '' ); ?>
有什么想法吗?
1 回答
您的问题是
get_the_term_list
函数返回一个HTML字符串,因此您要计算HTML标记中的字符以及类别名称本身中的字符 .这里有一些代码应该从HTML标记中提取类别名称,仅截断名称(如果需要),并输出带有截断类别名称的HTML字符串:
此外,如果名称恰好包含14个字符,则看起来您的作者姓名代码将失败 . 试试这个: