为什么apply_filter('the_content')输出什么?

Han*_*com 4 php wordpress post

我已经尝试了这么多的php组合来让wordpress输出$ post-> post_content作为格式化文本(而不是echo $post->post_content给我的原始格式.这种组合似乎是最有希望的,但它没有输出任何东西.有任何想法吗?

(这是这一行:<?php $content = apply_filters('the_content', $s->post_content); ?>)

<?php query_posts('orderby=menu_order&order=asc&posts_per_page=-1&post_type=page&post_parent='.$post->ID); if(have_posts()) { while(have_posts()) { the_post(); ?>
    <div class="page">
        <?php
            global $wpdb;
            $subs = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent='$post->ID' AND post_type='page' AND post_status='publish'");
            if($subs) {
        ?>
        <div class="navi"></div>
        <a class="naviNext"><img src="<?php bloginfo('template_url'); ?>/images/navi-next.png" alt="" /></a>
        <div class="scrollable">
            <div class="items">
                <?php foreach($subs as $s) { ?>
                <div class="item">
                    <h2><?php echo $s->post_title; ?></h2>
                    <?php $content = apply_filters('the_content', $s->post_content); echo $content; ?>
                </div>
                <?php } ?>
            </div>
        </div>
        <?php } else { the_content(); } ?>
    </div>
    <?php } } wp_reset_query(); ?>
Run Code Online (Sandbox Code Playgroud)

spu*_*ata 11

据我所知,将主要"格式化"应用于内容体的函数是wpautop().该功能应该通过wordpress连接到'the_content'.该函数确实做了烦人的事情(比如搞乱嵌入代码),并且有很多插件会从过滤器堆栈中取消它.尝试更换你的线路:

<?php $content = apply_filters('the_content', $s->post_content); echo $content; ?>
Run Code Online (Sandbox Code Playgroud)

<?php $content = wpautop($s->post_content); echo $content; ?>
Run Code Online (Sandbox Code Playgroud)

如果这有帮助,那么你可能有一个问题,wpautop在某个地方脱钩.


Pat*_*Pat 0

您需要echo调用的结果apply_filters

<?php echo apply_filters('the_content', $s->post_content); ?>
Run Code Online (Sandbox Code Playgroud)

或者,正如您所编码的那样:

<?php 
    $content = apply_filters('the_content', $s->post_content); 
    echo $content;
?>
Run Code Online (Sandbox Code Playgroud)