Wordpress, Timber, поле печати из пользовательского поля WCK в шаблоне Twig - PullRequest
0 голосов
/ 09 марта 2020

Я создал настраиваемые поля для настраиваемого пост-типа, используя WCK-плагин для полей, и хочу добавить поля в мой шаблон Timber Twig. (Я знаю, что Timber рекомендует для этого ACF, но сначала пробую WCK, так как это для некоммерческого веб-сайта, а WCK предлагает в своей бесплатной версии плагинов то, что ACF не делает). Вот соответствующая строка файла php:

$context['home_page_content'] = Timber::get_posts('post_type=vopthomepage');

и в моем шаблоне ветки я напечатал:

{{ dump(home_page_content) }}

Соответствующие части (я думаю?), Которые я получаю, :

public 'object_type' => string 'post' (length=4)
public 'post_type' => string 'vopthomepage' (length=12)
public 'are_you' => // this is the field group
public 'question_1' => string 'New to the area, looking for a church to join?' (length=46) // this is the field

Итак, чтобы получить поле, я попытался {{ post.question_1 }}, без радости, поэтому попытался {{ post.get_field('question_1') }} Я также попытался следовать совету для ACF с {{ post.meta('are_you').question_1 }}, но ни один из этих документов ничего не печатает на стр.

Вот полный дамп:

array (size=1)
  0 => 
    object(Timber\Post)[5652]
      public 'ImageClass' => string 'Timber\Image' (length=12)
      public 'PostClass' => string 'Timber\Post' (length=11)
      public 'TermClass' => string 'Timber\Term' (length=11)
      public 'object_type' => string 'post' (length=4)
      public 'custom' => 
        array (size=7)
          '_edit_last' => string '1' (length=1)
          '_edit_lock' => string '1583704531:1' (length=12)
          'are_you' => 
            array (size=1)
              ...
          '_rsc_content_availability' => string 'everyone' (length=8)
          '_rsc_capability' => string '' (length=0)
          'question_1' => string 'New to the area, looking for a church to join?' (length=46)
          'answer_1' => string 'Take a look under the What we do menu, as well as Churches for info and the locations of buildings.' (length=99)
      protected '___content' => null
      protected '_permalink' => null
      protected '_next' => 
        array (size=0)
          empty
      protected '_prev' => 
        array (size=0)
          empty
      protected '_css_class' => null
      public 'id' => int 293
      public 'ID' => int 293
      public 'post_author' => string '1' (length=1)
      public 'post_content' => string '' (length=0)
      public 'post_date' => string '2020-03-04 16:42:52' (length=19)
      public 'post_excerpt' => string '' (length=0)
      public 'post_parent' => int 0
      public 'post_status' => string 'publish' (length=7)
      public 'post_title' => string 'Home page content' (length=17)
      public 'post_type' => string 'vopthomepage' (length=12)
      public 'slug' => string 'help' (length=4)
      protected '__type' => null
      public '_edit_last' => string '1' (length=1)
      public '_edit_lock' => string '1583704531:1' (length=12)
      public 'are_you' => 
        array (size=1)
          0 => 
            array (size=2)
              ...
      public '_rsc_content_availability' => string 'everyone' (length=8)
      public '_rsc_capability' => string '' (length=0)
      public 'question_1' => string 'New to the area, looking for a church to join?' (length=46)
      public 'answer_1' => string 'Take a look under the What we do menu, as well as Churches for info and the locations of buildings.' (length=99)
      public 'post_date_gmt' => string '2020-03-04 16:42:52' (length=19)
      public 'comment_status' => string 'closed' (length=6)
      public 'ping_status' => string 'closed' (length=6)
      public 'post_password' => string '' (length=0)
      public 'post_name' => string 'help' (length=4)
      public 'to_ping' => string '' (length=0)
      public 'pinged' => string '' (length=0)
      public 'post_modified' => string '2020-03-08 21:08:08' (length=19)
      public 'post_modified_gmt' => string '2020-03-08 21:08:08' (length=19)
      public 'post_content_filtered' => string '' (length=0)
      public 'guid' => string 'https://mbp-2.local:5757/?post_type=vopthomepage&p=293' (length=65)
      public 'menu_order' => int 0
      public 'post_mime_type' => string '' (length=0)
      public 'comment_count' => string '0' (length=1)
      public 'filter' => string 'raw' (length=3)
      public 'status' => string 'publish' (length=7)

1 Ответ

0 голосов
/ 09 марта 2020

Ваш контент находится в home_page_content, который является массивом Timber\Post объектов. Чтобы получить содержимое, вам нужно l oop через них, например, так:

{% for post in home_page_content  %}
  {{ post.question_1 }}
{% endfor %}

В качестве альтернативы, если вы хотите получить только данные из одного, указанного c элемента в массиве, вы можете сделать что-то вроде

{{ home_page_content[0].question_1 }}

где число, в данном случае 0, указывает, какой элемент вы хотите.

...