如何将Wordpress post_content转换为Laravel视图?

时间:2014-05-30 04:05:04

标签: php wordpress laravel-4 wordpress-plugin

我一直在使用Laravel进行所有应用程序开发,但最近发现Wordpress在通过众多令人惊叹的主题,小部件和自定义选项引导高质量视图方面非常出色。

由于出色的指南@ http://grossi.io/2014/working-with-laravel-4-and-wordpress-together/

,Laravel和Wordpress并排工作很容易设置

问题是如何挂钩WP的HTML / CSS / Js生成函数,以便我可以通过post_id将内容带回Laravel视图。这是我想要转换的典型数据:

post_content = <code>[fullwidth backgroundcolor="" backgroundimage="" backgroundrepeat="no-repeat"]          </code>
<h1 style="text-align: center; font-size: 30px !important;">Test test<span       style="color: #e9a825;"> #1 </span>testing testing</h1>
<p style="text-align: center; margin-top: -10px; font-size: 17px !important;">With over [tooltip   title="Stack Overflow is awesome"]<strong>yeah!</strong>[/tooltip]more [tooltip title="abc"]<strong>test</strong>  [/tooltip] test.</p>
[/fullwidth]

目标是尽可能在Laravel内部完成所有生成,因为理想情况下,我希望在生成HTML / CSS / JS之前将我的Laravel应用程序中的自定义数据注入查询后的内容中在我看来。

1 个答案:

答案 0 :(得分:2)

我找到了一个适合我的解决方案。我将此代码添加到我的BaseController中。 使用方法如下:

echo $this->_get_wp_post(123);

public function _get_wp_post($post_id) {
    ob_start();
    get_header();
    $header = ob_get_contents();
    ob_end_clean();

    ob_start();         
    $content = '';
    global $post;
    $post  = get_post($post_id);
    setup_postdata($post);
    the_content();
    $content = ob_get_contents();
    wp_reset_postdata();
    ob_end_clean();

    ob_start();
    get_footer();
    $footer = ob_get_contents();
    ob_end_clean();

    return $header . $content . $footer;
}

警告:自定义主题中的某些元素可能需要进行一些调整才能按预期工作和/或消除Laravel异常。

希望这对某人有帮助。