Create html from function

时间:2014-06-23 作者:user51590

我有这样一个简单的html结构。

<div class="ideaPost">

    <a href="<?php echo get_permalink($post->ID); ?>">  
        <div class="ideaPost__Info">
            <?php

                $attachments = get_children(array(
                    \'post_type\' => \'attachment\',
                    \'post_mime_type\' => \'image\',
                    \'post_parent\' => $post->ID
                ));

                if(count($attachments) > 0) {
                    echo \'<span class="glyphicon glyphicon-paperclip"></span>\';
                }

            ?>
        </div>
        <h3><?php echo the_title(); ?></h3>
        <h4>by </h4>

        <?php echo the_excerpt(); ?>
    </a>
</div>
我在许多页面上使用它,所以我想将其添加到函数中。并调用页面上的函数。

如何将其添加为函数以生成此结构。我试过这个。

function ideas(id){
  echo \'<div class="ideaPost">\';
  echo \'<a href="\'. get_permalink(id); .\'">\';   
  echo \'<div class="ideaPost__Info">\';

  $attachments = get_children(array(
    \'post_type\' => \'attachment\',
    \'post_mime_type\' => \'image\',
    \'post_parent\' => $post->ID
  ));

  if(count($attachments) > 0) {
    echo \'<span class="glyphicon glyphicon-paperclip"></span>\';
  }

  echo \'</div>\';
  echo \'<h3>\'.the_title(); .\'</h3>\';

  echo \'<h4>by </h4>\';

  echo the_excerpt();

  echo \'</a>\';
  echo \'</div>\';

}
和在页面中

if(function_exists(\'idea\')){
  idea();
}

1 个回复
SO网友:Pieter Goosen

这一切都归结为您的功能需要什么。php等等。这可能只是个人喜好,但我强烈建议您不要将循环中的元素添加到函数中。是的,你不喜欢重复。如自定义分页函数,请将其添加到函数中。然后在模板中调用该函数。

我建议看看其他解决这个问题的方法。在这种情况下,这里使用的最有用的替代方法是创建内容。php类型的模板,您可以通过get_template_part.

例如:

在主题的根目录中创建一个文件,并将其称为“内容自定义”。php。在此模板中添加以上所有代码。您现在只需在页面模板中需要的地方调用此模板,如下所示

<?php get_template_part( \'content\', \'custom\' ); ?>
从我现在删除的评论中

只是想一想,我会保持你现有的结构。我会尽量减少模板的数量,尽量优化它们。页面模板中的一个或两个条件语句可以减少对两个额外模板的需要。我还想看看如何创建一个动态页面模板。说真的,我不会做你想做的事

如上所述,您似乎在站点上使用了很多页面模板,您需要查看一下,看看在哪里可以使用conditional statements/tags 不需要如此大量的模板。

我还会在这里查看动态页面模板。实际上,我称之为动态页面模板,因为这涉及一个可以多次重用的页面模板。可以从页面编辑器屏幕的元框中选择页面上显示的具体内容选项。您可以检查this post 明白我的意思。

EDIT

关于你的代码,我忘了一件事,你不需要echo 当您使用the_title()the_excerpt()

结束

相关推荐

Shotcode error on functions

您好,我有一个生成错误的短代码。有人能帮忙吗?add_shortcode(\'do-action\', \'do_action_shortcode\'); function do_action_shortcode($atts, $content = \'\') {   ob_start();   do_action($content);   $out = ob_get_contents();   ob_end_clean();   return $