在WordPress中使用add_shortcode()在主页中创建内容部分

问题描述 投票:1回答:2

我想在wordpress的主页中创建一个包含一些内容的部分,因为我在function.php中使用了add_shortcode()。到目前为止它运作良好..但我想知道我是否正确地做了或者我应该通过其他更好的方式做到这一点?我的代码:

add_shortcode('homemiddle', 'display_middle_info');

function display_middle_info() {

$url = get_stylesheet_directory_uri();  

$content =" 
        <section class='gallery-section masonry-gallery padd-bott-60 bg-lightgrey'>
         <h2>My Title</h3>
         <a href='#'>GET FREE CONSULTATION</a> <a href='#'>ENTRANCE TEST 2018-19</a>

        </section>";    

  return $content;

}

并在我的模板文件中输出我正在做的:

<?php echo do_shortcode( '[homemiddle]' );?> 

它正在完成这项工作,但我仍然想确认这是一个合适的方法,因为我是WordPress开发的新手。请指导我......谢谢。

php wordpress wordpress-theming
2个回答
1
投票

是的,如果您想要提升功能,此代码是正确的,您可以使用此代码:

add_shortcode('homemiddle', 'display_middle_info');
function display_middle_info($atts) {
   $url = get_stylesheet_directory_uri();  

   $content = "";
   $content .= "<section class='gallery-section masonry-gallery padd-bott-60 bg-lightgrey'>";
   $content .= "<h2>My Title</h3>";
   $content .= "<a href='#'>GET FREE CONSULTATION</a> <a href='#'>ENTRANCE TEST 2018-19</a>";
   $content .= "</section>";  

   if($atts['id']){
      $content .= "<div>ID: ".$atts['id']." passed</div>";
   }
   if($atts['another'] == 1){
      $content .= "<div>This shortcode have another args passed!</div>";
   }
   if($atts['another'] == 0){
      $content .= "<div>This shortcode have another args NOT PASSED!</div>";
   }

   return $content;
}

所以,你可以使用更多的短码args。例如。:

<?php echo do_shortcode( '[homemiddle]' ); ?>
<?php echo do_shortcode( '[homemiddle id=254]' ); ?>
<?php echo do_shortcode( '[homemiddle another=0]' ); ?>
<?php echo do_shortcode( '[homemiddle another=1]' ); ?>
<?php echo do_shortcode( '[homemiddle id=254 another=1]' ); ?>

我希望能帮助你,因为每个问题也对我的帖子发表评论


0
投票

首先,如果它的工作,它的工作!看起来很好。通常情况下,当我想要复杂的逻辑或使用动态数据时,我会使用短代码,但能够将短代码粘贴到所见即所得的编辑器或模板文件中,或者我希望授权非技术用户在CMS管理界面中使用。

如果您只需要输出一次静态内容,那么短代码可能过度,但您的实现没有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.