|
@@ -1,54 +1,181 @@
|
|
<?php
|
|
<?php
|
|
-function wpc_cpt() {
|
|
|
|
-
|
|
|
|
- /* Property */
|
|
|
|
- $labels = array(
|
|
|
|
- 'name' => _x('Properties', 'Post Type General Name', 'la_mine'),
|
|
|
|
- 'singular_name' => _x('Property', 'Post Type Singular Name', 'la_mine'),
|
|
|
|
- 'menu_name' => __('Properties', 'la_mine'),
|
|
|
|
- 'name_admin_bar' => __('Properties', 'la_mine'),
|
|
|
|
- 'parent_item_colon' => __('Parent Item:', 'la_mine'),
|
|
|
|
- 'all_items' => __('All Items', 'la_mine'),
|
|
|
|
- 'add_new_item' => __('Add New Item', 'la_mine'),
|
|
|
|
- 'add_new' => __('Add New', 'la_mine'),
|
|
|
|
- 'new_item' => __('New Item', 'la_mine' ),
|
|
|
|
- 'edit_item' => __('Edit Item', 'la_mine'),
|
|
|
|
- 'update_item' => __('Update Item', 'la_mine'),
|
|
|
|
- 'view_item' => __('View Item', 'la_mine'),
|
|
|
|
- 'search_items' => __('Search Item', 'la_mine'),
|
|
|
|
- 'not_found' => __('Not found', 'la_mine'),
|
|
|
|
- 'not_found_in_trash' => __('Not found in Trash', 'la_mine'),
|
|
|
|
- );
|
|
|
|
- $rewrite = array(
|
|
|
|
- 'slug' => _x('property', 'property', 'la_mine'),
|
|
|
|
- 'with_front' => true,
|
|
|
|
- 'pages' => true,
|
|
|
|
- 'feeds' => false,
|
|
|
|
|
|
+/**
|
|
|
|
+ * Timber starter-theme
|
|
|
|
+ * https://github.com/timber/starter-theme
|
|
|
|
+ *
|
|
|
|
+ * @package WordPress
|
|
|
|
+ * @subpackage Timber
|
|
|
|
+ * @since Timber 0.1
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * If you are installing Timber as a Composer dependency in your theme, you'll need this block
|
|
|
|
+ * to load your dependencies and initialize Timber. If you are using Timber via the WordPress.org
|
|
|
|
+ * plug-in, you can safely delete this block.
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+$composer_autoload = __DIR__ . '/vendor/autoload.php';
|
|
|
|
+if ( file_exists( $composer_autoload ) ) {
|
|
|
|
+ require_once $composer_autoload;
|
|
|
|
+ $timber = new Timber\Timber();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * This ensures that Timber is loaded and available as a PHP class.
|
|
|
|
+ * If not, it gives an error message to help direct developers on where to activate
|
|
|
|
+ */
|
|
|
|
+if ( ! class_exists( 'Timber' ) ) {
|
|
|
|
+
|
|
|
|
+ add_action(
|
|
|
|
+ 'admin_notices',
|
|
|
|
+ function() {
|
|
|
|
+ echo '<div class="error"><p>Timber not activated. Make sure you activate the plugin in <a href="' . esc_url( admin_url( 'plugins.php#timber' ) ) . '">' . esc_url( admin_url( 'plugins.php' ) ) . '</a></p></div>';
|
|
|
|
+ }
|
|
);
|
|
);
|
|
- $args = array(
|
|
|
|
- 'label' => __('property', 'la_mine'),
|
|
|
|
- 'description' => __('Properties', 'la_mine'),
|
|
|
|
- 'labels' => $labels,
|
|
|
|
- 'supports' => array('title', 'editor', 'thumbnail', 'comments', 'revisions', 'custom-fields'),
|
|
|
|
- 'taxonomies' => array('property_type'),
|
|
|
|
- 'hierarchical' => false,
|
|
|
|
- 'public' => true,
|
|
|
|
- 'show_ui' => true,
|
|
|
|
- 'show_in_menu' => true,
|
|
|
|
- 'menu_position' => 5,
|
|
|
|
- 'menu_icon' => 'dashicons-admin-home',
|
|
|
|
- 'show_in_admin_bar' => true,
|
|
|
|
- 'show_in_nav_menus' => true,
|
|
|
|
- 'can_export' => true,
|
|
|
|
- 'has_archive' => false,
|
|
|
|
- 'exclude_from_search' => false,
|
|
|
|
- 'publicly_queryable' => true,
|
|
|
|
- 'query_var' => 'property',
|
|
|
|
- 'rewrite' => $rewrite,
|
|
|
|
- 'capability_type' => 'page',
|
|
|
|
|
|
+
|
|
|
|
+ add_filter(
|
|
|
|
+ 'template_include',
|
|
|
|
+ function( $template ) {
|
|
|
|
+ return get_stylesheet_directory() . '/static/no-timber.html';
|
|
|
|
+ }
|
|
);
|
|
);
|
|
- register_post_type('property', $args);
|
|
|
|
|
|
+ return;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * Sets the directories (inside your theme) to find .twig files
|
|
|
|
+ */
|
|
|
|
+Timber::$dirname = array( 'templates', 'views' );
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * By default, Timber does NOT autoescape values. Want to enable Twig's autoescape?
|
|
|
|
+ * No prob! Just set this value to true
|
|
|
|
+ */
|
|
|
|
+Timber::$autoescape = false;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// REMOVE EDITOR
|
|
|
|
+ function remove_editor() {
|
|
|
|
+ remove_post_type_support(
|
|
|
|
+ 'page', 'editor'
|
|
|
|
+ );
|
|
|
|
+ remove_post_type_support(
|
|
|
|
+ 'post', 'editor'
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ add_action('admin_init', 'remove_editor');
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * We're going to configure our theme inside of a subclass of Timber\Site
|
|
|
|
+ * You can move this to its own file and include here via php's include("MySite.php")
|
|
|
|
+ */
|
|
|
|
+class StarterSite extends Timber\Site {
|
|
|
|
+ /** Add timber support. */
|
|
|
|
+ public function __construct() {
|
|
|
|
+ add_action( 'after_setup_theme', array( $this, 'theme_supports' ) );
|
|
|
|
+ add_filter( 'timber/context', array( $this, 'add_to_context' ) );
|
|
|
|
+ add_filter( 'timber/twig', array( $this, 'add_to_twig' ) );
|
|
|
|
+ add_action( 'init', array( $this, 'register_post_types' ) );
|
|
|
|
+ add_action( 'init', array( $this, 'register_taxonomies' ) );
|
|
|
|
+ parent::__construct();
|
|
|
|
+ }
|
|
|
|
+ /** This is where you can register custom post types. */
|
|
|
|
+ public function register_post_types() {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ /** This is where you can register custom taxonomies. */
|
|
|
|
+ public function register_taxonomies() {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** This is where you add some context
|
|
|
|
+ *
|
|
|
|
+ * @param string $context context['this'] Being the Twig's {{ this }}.
|
|
|
|
+ */
|
|
|
|
+ public function add_to_context( $context ) {
|
|
|
|
+ $context['foo'] = 'bar';
|
|
|
|
+ $context['stuff'] = 'I am a value set in your functions.php file';
|
|
|
|
+ $context['notes'] = 'These values are available everytime you call Timber::context();';
|
|
|
|
+ $context['menu'] = new Timber\Menu();
|
|
|
|
+ $context['site'] = $this;
|
|
|
|
+ return $context;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public function theme_supports() {
|
|
|
|
+ // Add default posts and comments RSS feed links to head.
|
|
|
|
+ add_theme_support( 'automatic-feed-links' );
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Let WordPress manage the document title.
|
|
|
|
+ * By adding theme support, we declare that this theme does not use a
|
|
|
|
+ * hard-coded <title> tag in the document head, and expect WordPress to
|
|
|
|
+ * provide it for us.
|
|
|
|
+ */
|
|
|
|
+ add_theme_support( 'title-tag' );
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Enable support for Post Thumbnails on posts and pages.
|
|
|
|
+ *
|
|
|
|
+ * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
|
|
|
|
+ */
|
|
|
|
+ add_theme_support( 'post-thumbnails' );
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Switch default core markup for search form, comment form, and comments
|
|
|
|
+ * to output valid HTML5.
|
|
|
|
+ */
|
|
|
|
+ add_theme_support(
|
|
|
|
+ 'html5',
|
|
|
|
+ array(
|
|
|
|
+ 'comment-form',
|
|
|
|
+ 'comment-list',
|
|
|
|
+ 'gallery',
|
|
|
|
+ 'caption',
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Enable support for Post Formats.
|
|
|
|
+ *
|
|
|
|
+ * See: https://codex.wordpress.org/Post_Formats
|
|
|
|
+ */
|
|
|
|
+ add_theme_support(
|
|
|
|
+ 'post-formats',
|
|
|
|
+ array(
|
|
|
|
+ 'aside',
|
|
|
|
+ 'image',
|
|
|
|
+ 'video',
|
|
|
|
+ 'quote',
|
|
|
|
+ 'link',
|
|
|
|
+ 'gallery',
|
|
|
|
+ 'audio',
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ add_theme_support( 'menus' );
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** This Would return 'foo bar!'.
|
|
|
|
+ *
|
|
|
|
+ * @param string $text being 'foo', then returned 'foo bar!'.
|
|
|
|
+ */
|
|
|
|
+ public function myfoo( $text ) {
|
|
|
|
+ $text .= ' bar!';
|
|
|
|
+ return $text;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /** This is where you can add your own functions to twig.
|
|
|
|
+ *
|
|
|
|
+ * @param string $twig get extension.
|
|
|
|
+ */
|
|
|
|
+ public function add_to_twig( $twig ) {
|
|
|
|
+ $twig->addExtension( new Twig\Extension\StringLoaderExtension() );
|
|
|
|
+ $twig->addFilter( new Twig\TwigFilter( 'myfoo', array( $this, 'myfoo' ) ) );
|
|
|
|
+ return $twig;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
-add_action('init', 'wpc_cpt', 10);
|
|
|
|
-?>
|
|
|
|
|
|
+new StarterSite();
|