Thread tagged as: Question

Move date to end of blogslug?


I'd like to move the date to the end of the blogslug, instead of it being at the start. Here's my setup.


'routing_tokens' => [
    'blogslug' => '[1-2][0-9]{3}\-[0-9]{2}\-[0-3][0-9]-[a-z0-9\-]+',

Editing General Settings: Slug format

I've flipped the date, it's now at the end of the slug


Editing ‘Post’ Page



"Sorry, that page could not be found."


I guess I need to edit the custom token in runway.php. I thought I could just flip the token order like this:

'routing_tokens' => [
            'blogslug' => '[a-z0-9\-]-[1-2][0-9]{3}\-[0-9]{2}\-[0-3][0-9]+',

But it doesn't work, has anyone done this?


Perch Runway: 3.1.1, PHP: 7.1.12, MySQL: mysqlnd 5.0.12-dev - 20150407 - $Id: b396954eeb2d1d9ed7902b8bae237b287f21ad9e $, with PDO
Server OS: Darwin, cgi-fcgi
Installed apps: content (3.1.1), assets (3.1.1), categories (3.1.1), perch_blog (5.6.1), perch_forms (1.11)
App runtimes: <?php $apps_list = [ 'perch_forms', 'perch_blog'  ];
PERCH_PATH: /Users/stephen/Repositories/project-name/cms/perch
PERCH_CORE: /Users/stephen/Repositories/project-name/cms/perch/core
PERCH_RESFILEPATH: /Users/stephen/Repositories/project-name/cms/perch/resources
Image manipulation: GD
PHP limits: Max upload 32M, Max POST 32M, Memory: 128M, Total max file upload: 32M
F1: 3b606135b33e6a102526838f4152a807
Resource folder writeable: Yes
SCRIPT_NAME: /perch/core/settings/diagnostics/index.php
REQUEST_URI: /perch/core/settings/diagnostics/
DOCUMENT_ROOT: /Users/stephen/Repositories/project-name/cms
HTTP_HOST: project-name.local
Stephen Meehan

Stephen Meehan 4 points

  • 3 years ago
Drew McLellan

Drew McLellan 2638 points
Perch Support

You may need to make the [a-z0-9\-] non greedy so that it doesn't swallow the rest of the string.

Thanks for the tip Drew.

I found this great tool to help me test the token

The token below matches theblogslug when the date is moved to the end of the slug

'blogslug' => '[a-z0-9\-]+-[1-2][0-9]{3}\-[0-9]{2}\-[0-3][0-9]+',

I needed to add the 'one more' symbol + to the end of the first token [a-z0-9\-]+

Note for future Stephen: When making changes to tokens in runway.php, I found I needed to go back to the Location tab on my post page and press save before the updated token would work.