我有这样一个简单的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();
}
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()