Skip to content

nclud/wp-timber-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##Requirements You must be using Timber for WordPress.

##Installation run npm install --save wp-timber-cli inside your root WordPress theme directory.

##Usage Timber CLI will create a WordPress PHP template and corresponding twig template and automatically create some default Timber stuff.

###Create Templates From the command line, run wp-timber -c <type> <name> where type is the type of template (page, single, archive) and name is, you guessed it, the name of the template.

Example Output

wp-timber -c page about-us

Creates page-about-us.php in your theme's root directory, and /views/pages/page-about-us.twig. If you don't have a views directory it will be created for you.

Inside the created .php file is a very basic Timber template that renders the corresponding twig template that was also created.

page-about-us.php

<?php

$context = Timber::get_context();
$post = new TimberPost();
$context["post"] = $post;
Timber::render("/views/pages/page-test.twig", $context);

?>

###Create Query You can create a basic WordPress query for an existing page template, or when create a new template using this CLI.

Existing Template

wp-timber -q page-about.php custom-post-type

When Create a New Template

wp-timber -c page about -q custom-post-type

Output

<?php

 $custom_post_types_args = array(
  "post_type"     => "custom-post-type"
 );

$context = Timber::get_context();
$post = new TimberPost();
$context["post"] = $post;
$context["custom_post_types"] = Timber::get_posts($custom_post_types_args);
Timber::render("/views/pages/page-about.twig", $context);

?>

###Remove Templates

wp-timber -r page about-us

This will find a .php template called page-about-us.php in the root theme directory and delete it, as well as the corresponding twig template in /views/pages/.

###Create Subclasses

Create a subclass of a built-in Timber class (TimberPost, TimberTerm etc.) in the lib directory by running wp-timber -s <class> <name>, where class refers to the class to extend and name is the name assigned to the new subclass. Site, term, post, menu, menuitem, and user are all accepted as arguments for the base class.

Output

wp-timber -s post TestPost

Creates TestPost.php in the /lib directory, with the following boilerplate:

<?php

Class TestPost extends TimberPost { 
  // Add methods and properties here 
} 

?>

This will find a .php template called page-about-us.php in the root theme directory and delete it, as well as the corresponding twig template in /views/pages/.

###Build from a Config file With Timber CLI you can generate a series of templates with queries from a configuration file. Create a .timber file that contains JSON to generate as many templates with queries as you want.

Here's an example config file:

{
  "page": {
    "blog": {
      "queries":{
        "news": {
          "post_per_page": 10,
          "orderby": "title"
        },
        "custom-posts": {
          "post_per_page": 20,
          "orderby": "date"
        }
      }
    },
    "about-us": {}
  },
  "archive": {
    "events": {},
  },
  "single": {
    "event": {}
  }
}

Running wp-timber build will generate the following PHP/twig templates:

  • page-blog.php with two queries: one for 'news' post type and one for 'custom-posts' and views/pages/page-blog.twig file
  • page-about-us.php and views/pages/page-about-us.twig
  • archive-events.php and views/archives/archive-events.twig
  • single-event.php and views/singles/single-event.twig

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published