| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 | <?php/** * 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();}if( function_exists('acf_add_options_page') ) {	acf_add_options_page(array(		'page_title' 	=> 'Information',		'menu_title'	=> 'Information',		'menu_slug' 	=> 'information',		'capability'	=> 'edit_posts',		'redirect'		=> false	));	acf_add_options_sub_page(array(		'page_title' 	=> 'Partenaires',		'menu_title'	=> 'Partenaires',		'parent_slug'	=> 'information',	));}add_filter( 'timber_context', 'options_footer'  );function options_footer( $context ) {    $context['options'] = get_fields('option');    return $context;}/** * 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>';		}	);	add_filter(		'template_include',		function( $template ) {			return get_stylesheet_directory() . '/static/no-timber.html';		}	);	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;	}}new StarterSite();
 |