This package is a Symfony Bundle designed to use WordPress with Symfony.
How does it work ? When the WordPress bundle is loaded, it includes the minimal amount of WordPress Core files to allow usage of WordPress functions and plugins inside Symfony.
Blog Controller example for single page
/**
* src/Controller/BlogController.php
*
* @param Post $post
* @param PostRepository $postRepository
* @param BreadcrumbService $breadcrumbService
* @return Response
*/
public function pageAction(Post $post, PostRepository $postRepository)
{
$context = [];
// get current post
$context['post'] = $post;
// find 10 "brands" ordered by title
$context['brands'] = $postRepository->findBy(['post_type'=>'brand'], ['title'=>'ASC'], 10);
return $this->render('page.html.twig', $context);
}
Twig template example for single page
{# templates/page.html.twig #}
{% extends 'layout.html.twig' %}
{% block body %}
<article id="post-{{ post.ID }}" class="{{ post.class }}">
{% if post.thumbnail %}
<img src="{{ post.thumbnail|resize(800, 600) }}" alt="{{ post.thumbnail.alt }}"/>
{% endif %}
<div class="entry-content">
{{ post.content|raw }}
{# or #}
{% for block in post.blocks %}
{% include 'block/'~block.name~'.html.twig' %}
{% endfor %}
</div>
<small>{{ post.metafields.mention }}</small>
{% for brand in brands %}
{% include 'brand.html.twig' %}
{% endfor %}
</article>
{% endblock body %}
Demo
Got 2 minutes? Checkout the demo of our bundle
This is an implementation of the Twenty Nineteen WordPress theme for wordpress-bundle.
Feature list
Using Composer
Install/update Wordpress via composer
Install/update plugins via composer
Using Symfony
Template engine
Folder structure
Http Cache
Routing
YML configuration
DotEnv
Enhanced Security ( Wordpress is 'hidden' )
Dynamic image resize
MVC
Using Wordpress Bundle
Post/Term Repository
Controller argument resolver for post(s), term and user
Symfony Cache invalidation on update ( Varnish compatible )