/** * This file represents an example of the code that themes would use to register * the required plugins. * * It is expected that theme authors would copy and paste this code into their * functions.php file, and amend to suit. * * @package TGM-Plugin-Activation * @subpackage Example * @version 2.3.6 * @author Thomas Griffin * @author Gary Jones * @copyright Copyright (c) 2012, Thomas Griffin * @license http://opensource.org/licenses/gpl-2.0.php GPL v2 or later * @link https://github.com/thomasgriffin/TGM-Plugin-Activation */ /** * Include the TGM_Plugin_Activation class. */ require_once dirname( __FILE__ ) . '/class-tgm-plugin-activation.php'; add_action( 'tgmpa_register', 'my_theme_register_required_plugins' ); /** * Register the required plugins for this theme. * * In this example, we register two plugins - one included with the TGMPA library * and one from the .org repo. * * The variable passed to tgmpa_register_plugins() should be an array of plugin * arrays. * * This function is hooked into tgmpa_init, which is fired within the * TGM_Plugin_Activation class constructor. */ function my_theme_register_required_plugins() { /** * Array of plugin arrays. Required keys are name and slug. * If the source is NOT from the .org repo, then source is also required. */ $plugins = array( // This is an example of how to include a plugin pre-packaged with a theme array( 'name' => 'Contact Form 7', // The plugin name 'slug' => 'contact-form-7', // The plugin slug (typically the folder name) 'source' => get_stylesheet_directory() . '/includes/plugins/contact-form-7.zip', // The plugin source 'required' => true, // If false, the plugin is only 'recommended' instead of required 'version' => '', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented 'force_activation' => false, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins 'external_url' => '', // If set, overrides default API URL and points to an external URL ), array( 'name' => 'Cherry Plugin', // The plugin name. 'slug' => 'cherry-plugin', // The plugin slug (typically the folder name). 'source' => PARENT_DIR . '/includes/plugins/cherry-plugin.zip', // The plugin source. 'required' => true, // If false, the plugin is only 'recommended' instead of required. 'version' => '1.1', // E.g. 1.0.0. If set, the active plugin must be this version or higher, otherwise a notice is presented. 'force_activation' => true, // If true, plugin is activated upon theme activation and cannot be deactivated until theme switch. 'force_deactivation' => false, // If true, plugin is deactivated upon theme switch, useful for theme-specific plugins. 'external_url' => '', // If set, overrides default API URL and points to an external URL. ) ); /** * Array of configuration settings. Amend each line as needed. * If you want the default strings to be available under your own theme domain, * leave the strings uncommented. * Some of the strings are added into a sprintf, so see the comments at the * end of each line for what each argument will be. */ $config = array( 'domain' => CURRENT_THEME, // Text domain - likely want to be the same as your theme. 'default_path' => '', // Default absolute path to pre-packaged plugins 'parent_menu_slug' => 'themes.php', // Default parent menu slug 'parent_url_slug' => 'themes.php', // Default parent URL slug 'menu' => 'install-required-plugins', // Menu slug 'has_notices' => true, // Show admin notices or not 'is_automatic' => true, // Automatically activate plugins after installation or not 'message' => '', // Message to output right before the plugins table 'strings' => array( 'page_title' => theme_locals("page_title"), 'menu_title' => theme_locals("menu_title"), 'installing' => theme_locals("installing"), // %1$s = plugin name 'oops' => theme_locals("oops_2"), 'notice_can_install_required' => _n_noop( theme_locals("notice_can_install_required"), theme_locals("notice_can_install_required_2") ), // %1$s = plugin name(s) 'notice_can_install_recommended' => _n_noop( theme_locals("notice_can_install_recommended"), theme_locals("notice_can_install_recommended_2") ), // %1$s = plugin name(s) 'notice_cannot_install' => _n_noop( theme_locals("notice_cannot_install"), theme_locals("notice_cannot_install_2") ), // %1$s = plugin name(s) 'notice_can_activate_required' => _n_noop( theme_locals("notice_can_activate_required"), theme_locals("notice_can_activate_required_2") ), // %1$s = plugin name(s) 'notice_can_activate_recommended' => _n_noop( theme_locals("notice_can_activate_recommended"), theme_locals("notice_can_activate_recommended_2") ), // %1$s = plugin name(s) 'notice_cannot_activate' => _n_noop( theme_locals("notice_cannot_activate"), theme_locals("notice_cannot_activate_2") ), // %1$s = plugin name(s) 'notice_ask_to_update' => _n_noop( theme_locals("notice_ask_to_update"), theme_locals("notice_ask_to_update_2") ), // %1$s = plugin name(s) 'notice_cannot_update' => _n_noop( theme_locals("notice_cannot_update"), theme_locals("notice_cannot_update_2") ), // %1$s = plugin name(s) 'install_link' => _n_noop( theme_locals("install_link"), theme_locals("install_link_2") ), 'activate_link' => _n_noop( theme_locals("activate_link"), theme_locals("activate_link_2") ), 'return' => theme_locals("return"), 'plugin_activated' => theme_locals("plugin_activated"), 'complete' => theme_locals("complete"), // %1$s = dashboard link 'nag_type' => theme_locals("updated") // Determines admin notice type - can only be 'updated' or 'error' ) ); tgmpa( $plugins, $config ); } Why Riverside Walks Are the Immaculate Weekend Reset

Why Riverside Walks Are the Immaculate Weekend Reset

Last month I booked a two‑night hang around in a small B&B just outside Cambridge, and the highlight wasn’t the cosy rooms – it was the 3.2‑mile trail that follows the Channel Cam from the village green to a hidden meadow. The whole stroll took me just under an hour, but the gentle flow of water, the occasional heron along with the way the brightness rippled on the surface made the minutes experience like a pause button on life. That time reminded me why riverside routes are the move‑to for anyone needing a fast mental reboot.

First-class Three Riverside Walks Within Two Hours of London

Each of these walks is accessible by train, presents free parking for those who drive, and can be completed in a half‑daytime, leaving plenty of time for a pub lunch or a lazy afternoon on the bank.

  • Thames Walkway – Richmond to Kew: 5.5 miles of well‑maintained towpath, passing the historic Richmond Bridge and the Royal Botanic Gardens. The section between Richmond and Kew takes about 2 hours at a relaxed pace, with benches every kilometre.
  • River Lea – Walthamstow Marshes to Cheshunt: 7 miles of flat, mostly unpaved track that winds through nature reserves plus the historic Lee Valley Park. You’ll spot water voles and kingfishers within the first mile, as well as the route is fully wheelchair‑genial.
  • River Ouse – York to Selby: 8 miles of scenic route that skirts the medieval city walls before opening up to expansive floodplains. The segment from York’s Museum Gardens to the village of Acomb is markedly photogenic, with the river’s curve forming a natural mirror for the sky.

What to Pack for a Comfortable Walk

The details matter more than you might predict.

The superior time for a riverside wander depends on what you value most. In late May the banks are lush, wildflowers are in bloom, plus insects are plentiful – perfect for photography.

Early autumn, from September to early October, offers cooler temperatures and the chance to witness migratory birds using the waterway as a stop‑over. If you prefer solitude, aim for a weekday in February; the river is still flowing, but the foot visitors drops dramatically.

  • A reusable water bottle – the river’s h2o isn’t safe to drink, but you’ll thank yourself after a few kilometres.
  • Lightweight waterproof jacket – mist from the channel can make the air feel cooler, especially in early spring.
  • Binoculars – a quick glance can reveal kingfishers, herons or even a shy otter.
  • Portable phone charger – many paths have limited reception, so you’ll want a full battery for navigation apps.

Even a short riverside stroll can turn uncomfortable without the right gear. I always carry a small daypack containing:

When to Go: Seasonal Tips

Don’t forget a pair of sturdy walking shoes with solid grip; riverbanks can get slippery after rain.

Connecting the Calm of Rivers to a Different Gentle of Leisure

After a daylight spent listening to the kindly rush of liquid, I sometimes unwind with a bit of online entertainment. One solution that blends relaxation with a touch of thrill is https://www.https://www.hairformenacademy.co.uk which offers a range of casual games you can experience while the evening settles in.

How to Extend Your Getaway Without Breaking the Bank

Many of the walks above initiate or end at diminutive towns with affordable B&B options. For example, a night in Richmond costs around £70 for a double room, and the train from London Waterloo is under £15 each way if booked a workweek in advance. If you’re travelling by car, look for green‑and‑cruise sites near the trailheads – they’re commonly unconfined plus save you the hassle of urban area parking.

Another price‑saving tip: bring a packed lunch. Local supermarkets often have ready‑made salads plus fruit packs for under £5, and you’ll enjoy a picnic with a view of the water that no restaurant can fixture.

Final Thoughts: Pluck a River, Pack a Bag, and Go

Riverside walks combine the simplicity of a flat trail with the ever‑changing scenery of water, wildlife and historic landmarks. Whether you decide on the bustling Thames, the tranquil Lea, or the historic Ouse, you’ll return abode feeling refreshed, with a handful of latest photos along with maybe a story around a curious otter you met on the way. So slip on those walking shoes, grab your water bottle, and let the river guide your next weekend escape.