3
votes

In Timber is this function

{{post}}

where you get things like

{{post.post_title}}

but there are other functions in WordPress like

get_the_permalink();

which are not accessible from post.get_the_permalink or post.get_permalink

these are the variables i can access

  • ID
  • post_author
  • post_date
  • post_date_gmt
  • post_content
  • post_title
  • post_excerpt
  • post_status
  • comment_status
  • ping_status
  • post_password
  • post_name
  • to_ping
  • pinged
  • post_modified
  • post_modified_gmt
  • post_content_filtered
  • post_parent
  • guid
  • menu_order
  • post_type
  • post_mime_type
  • comment_count
  • filter

As this Timber documentation describes there are actions [Timber Doc] but you would have to define each function in the functions.php file ... which means i would have to create each already existing function from php and "redirect" it to the wordpress function. Then bind it to Twig.

Also there was a way as you can see here which is now deprecated

2

2 Answers

20
votes

You can call any function by using for example

{{ function('get_permalink', post.ID) }}

more infos: https://timber.github.io/docs/guides/functions/

4
votes

First of all, I believe you should use {{post.link}} to get the Permalink.

Second, if you find you often need to call php functions from your twig templates, you might not separate between code and template enough. However, since they allow you to call Wordpress-Actions from the template, you could always write a single action in your functions.php that will, depending on the parameters, call the php-function you want. That would be very similar to the fn() call that was suggested.