在wordpress的帖子摘录中显示html格式?

时间:2013-07-16 02:36:24

标签: html wordpress formatting shortcode

我正在为我的wordpress网站使用自定义主题。

post.class.php中的此代码控制帖子摘录的外观:

    function get_excerpt($post, $ln){
        if (!empty($post->post_excerpt)) {
            if (strlen(strip_tags(strip_shortcodes($post->post_excerpt))) > $ln) {
                echo mb_substr(strip_tags(strip_shortcodes($post->post_excerpt)), 0, $ln) . '[...]';
            } else {
                echo strip_tags(strip_shortcodes($post->post_excerpt));
            }
        } else {
            if (strlen(strip_tags(strip_shortcodes($post->post_content))) > $ln) {
                echo mb_substr(strip_tags(strip_shortcodes($post->post_content)), 0, $ln) . '[...]';
            } else {
                echo strip_tags(strip_shortcodes($post->post_content));
            }
        }

    }

如何编辑上面的代码,以便不剥离短代码和html格式?

这是用于配置帖子摘录(同一文件)中显示的字符数的代码:

            <div class="excerpt">
                <?php
                    if ( is_user_logged_in() ) {
                        $ln = 800; /*show first 800 characters*/
                        post::get_excerpt($post, $ln = $ln);
                    } else {
                        if ( !tools::is_nsfw( $post -> ID ) ) {
                            the_excerpt();
                        }else{
                            echo '<p>' . options::get_value( 'general' , 'nsfw_content' ) . '</p>';
                        }
                    }
                ?>
            </div>

更新:这是我最终用来显示html格式的代码:

 function get_excerpt($post, $ln){
        if (!empty($post->post_excerpt)) {
            if (strlen($post->post_excerpt) > $ln) {
                echo mb_substr(($post->post_excerpt), 0, $ln);
            } 
        } else {
            if (strlen($post->post_content) > $ln) {
                  echo mb_substr(($post->post_content), 0, $ln);
            } 
        }

    }

我取出了strip_tags和strip_shortcodes,使代码更加简化。我仍然需要弄清楚如何格式化mb_substr字符串的截止点,但我会把它作为一个单独的问题。

更新:这是我发布的问题 - &gt; mb_substr cutting off words in post excerpt?

0 个答案:

没有答案