为什么快捷代码总是显示在页脚之后,而不是正文中

时间:2018-06-29 作者:ahmadbagwi

我创建了一个自定义插件来显示主站点和微型站点(多站点)的最后一篇文章,并在页面上用短代码显示它。问题输出/内容显示在页脚后,而不是正文中。

密码

function tulisan_terbaru_function() { ?>
    <h3>Tulisan terbaru website kebudayaan...</h3><?php date(\'j F Y\');

    $blogs = get_last_updated();?>
    <table class="widefat" cellspacing="0">
    <?php
    foreach ($blogs AS $blog) {    
        switch_to_blog($blog["blog_id"]);
        $today = getdate();
        $args = array(
        \'post_type\'         => \'post\',
        \'post_status\'       => \'publish\',
        \'date_query\'        => array(
            array(
            \'year\'  => $today[\'year\'],
            \'month\' => $today[\'mon\'],
            \'day\'   => $today[\'mday\']
                )
            )
        );
        $wpb_all_query = new WP_Query($args); ?>
        <?php if ( $wpb_all_query->have_posts() ) : ?>


            <!-- the loop -->
            <?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
                <tr> <td><?php the_time(\'H:i\');?></td><td><?php echo get_bloginfo(\'name\');?></td><td><a href="<?php the_permalink(); ?>"><?php the_title();?></a></td></tr>
            <?php endwhile; ?>
            <!-- end of the loop -->

        <?php wp_reset_postdata(); ?>
        <?php endif;
            restore_current_blog();
    };
};

wrong shortcode place

1 个回复
最合适的回答,由SO网友:anmari 整理而成

Ahmad,短代码需要返回html,而不是像小部件那样直接回显它。短代码之所以有效,是因为wordpress将[短代码]替换为短代码函数返回的文本。

因此,请将代码更改为:

$html = \'<h3>Tulisan terbaru website kebudayaan...</h3>\'.date(\'j F Y\');
$blogs = get_last_updated();
$html .=\'<table class="widefat" cellspacing="0">\';   
foreach ($blogs AS $blog) {........
....
}
...
return ($html);

结束

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗