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

时间:2019-02-20 16:34:23

标签: php wordpress wordpress-theming

我想在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开发的新手。请指导我...谢谢。

2 个答案:

答案 0 :(得分: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;
}

因此,您可以使用更多的简码参数。例如:

<?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]' ); ?>

我希望能对您有所帮助,因为每个问题也在我的帖子中发表评论

答案 1 :(得分:0)

首先,如果它起作用了,那就起作用了!看起来不错。通常,当我想执行复杂的逻辑或处理动态数据但可以将短代码粘贴到所见即所得编辑器或模板文件中时,或者我想授权非技术用户在CMS管理界面中使用时,我会使用短代码。

如果您只需要输出一次静态内容,则简码可能会过大,但是实现没有问题。