快捷代码显示在div外部

时间:2015-06-10 作者:Pavnish Yadav

我创建了一个检索和显示表单的短代码。HTML中属性的内容。

function check_my_login( $atts)
    {

        return \'<form action="" name="" method="post" enctype="multipart/form-data">
               <div class="form-group">
                    <label for="description">Project Description</label>
                    <textarea name="p_description" placeholder="Project Description" class="form-control"><?php if (isset($_POST[\'p_description\']) && $_POST[\'p_description\'] != \'\') echo $_POST[\'p_description\'] ?></textarea>
                </div>

                <div class="form-group">
                    <label>Project Attachment</label>
                    <input type="file" name="p_attachment">
                </div>
</form>\';
    }
    add_shortcode( \'kentaUser\', \'check_my_login\' );
现在在帖子/页面中使用此短代码。

像这样

 <div class=\'manage_page\'>[kentaUser]</div>
 But my shortcode content display out side the div.Display upper side in post/page content.
 <div class=\'manage_page\'></div> 
任何一个人都不能解决这个问题。

2 个回复
最合适的回答,由SO网友:David Labbe 整理而成

请改用此选项:

连接html,然后返回它。

function check_my_login( $atts)
{

    $html = \'<form action="" name="" method="post" enctype="multipart/form-data">\';
    $html .= \'<div class="form-group">\';
    $html .= \'<label for="description">Project Description</label>\';
    $html .= \'<textarea name="p_description" placeholder="Project Description" class="form-control">\';

    if(isset($_POST[\'p_description\']) && $_POST[\'p_description\'] != \'\'){
        $html .= $_POST[\'p_description\'];
    }

    $html .= \'</textarea>\';
    $html .= \'</div>\';
    $html .= \'<div class="form-group">\';
    $html .= \'<label>Project Attachment</label>\';
    $html .= \'<input type="file" name="p_attachment">\';
    $html .= \'</div>\';
    $html .= \'</form>\';

    return $html;
}

 add_shortcode( \'kentaUser\', \'check_my_login\' );

SO网友:mfgmicha

如果您喜欢我,请回答这个问题,因为您在使用template parts 在您的shortcode, 那么我更喜欢WordPress核心开发人员的回答Konstantin Kovshenin 缓冲输出:

在快捷码函数中:

// start buffer
ob_start();

// call template (with html output)
get_template_part( \'/path/to/template/file\' );

// return buffered output
return ob_get_clean();

结束

相关推荐

Virtual Pages plugins

我很难让插件正常工作Virtual Pages (WordPress插件可简化虚拟页面的创建)我确实进行了编辑,根据查询创建了一个循环。add_action( \'gm_virtual_pages\', function( $controller ) { /* Creating virtuals pages for companies */ $args = array( \'post_type\' => array(\'companies\',), \'post_status\'