Maki
Maki

Reputation: 33

Timber how to implement get_current_url wp

Ive been using Wordpress for more than a year now. But I was stuck with the implementation of Timber twig framework get the current URL. I tried these codes below codes but no luck,.

{{ site.url.current }}
{{ app.request.getRequestUri() }}

Twig templates engine: get current url

Upvotes: 2

Views: 4999

Answers (2)

Daria N
Daria N

Reputation: 51

Adding ['current_url'] in functions.php under add_to_context function worked for me:

    public function add_to_context($context)
{
    // $context['foo']   = 'bar';
    $context['current_url'] = Timber\URLHelper::get_current_url();
    $context['site']  = $this;
    return $context;
}

You then will be able to use it globally in your twig templates:

 <pre>
  Current Url:  {{ dump(current_url) }}
</pre>

Upvotes: 3

wp78de
wp78de

Reputation: 18950

Have you tried:

URLHelper::get_current_url()

Doc: https://timber.github.io/docs/reference/timber-urlhelper/#get_current_url

So, you should be able to feed this as a variable into your template.

Or if you want to get a step further and extend Timber's Twig i.e. creating a filter or function like:

$twig->addFilter(new \Twig_SimpleFilter('is_current_url', function ($link) {
    return (URLHelper::get_current_url() == $link) ? true : false;
}));

Which should bring things down to:

{{ 'http://example.org/2015/08/my-blog-post' | is_current_url }}

BTW: Internally, get_current_url() returns: $_SERVER['HTTP_HOST']/$_SERVER['SERVER_NAME'] + $_SERVER["REQUEST_URI"]

Upvotes: 3

Related Questions