2017-02-28 4 views
1

Ich habe ein Advanced Custom Field-Element eingerichtet, um ein vorgestellten Bild, Beschreibung etc am Anfang jeder Kategorie & Archiv eines benutzerdefinierten Beitragstyp anzuzeigen. Image AttachedBenutzerdefinierte Felder, die auf Kategorie oder Archiv Seite nicht offenbaren

Die Custom Beitrag Typ & Taxonomie sind

$event_args = array(
    'has_archive'   => 'news-events', 
    'exclude_from_search' => false, 
    'publicly_queryable' => true, 
    'rewrite'    => $event_rewrite, 
    'capability_type'  => 'post', 
); 
register_post_type('events', $event_args); 
register_taxonomy('event_category', array('events'), $events_args); 

Im Archiv-events.php Ich habe

$context['pagination'] = Timber::get_pagination(); 
$context['title'] = 'Archive Tours'; 
$context['posts'] = Timber::get_posts(); 
$content['events'] = Timber::get_terms('event_category'); 
Timber::render($templates, $context); 

Im Zweig

<div class="col-sm-12 col-md-12"> 
    <article class="post post-container"> 
    <div class="entry-header"> 
     <div class="post-thumb thumb"> 
     {% if events.featured_event_image %} 
      <img src="{{TimberImage(events.featured_event_image).src}}" alt="{{ events.featured_event_title }}" 
       class="img-responsive" /> 
     {% else %} 
      {# TODO: replace this with something we serve. #} 
      <img src="http://placehold.it/500x340" alt="Default Thumbnail" class="img-responsive"> 
     {% endif %} 
     </div> 
    </div> 
    <div class="sa_blog_content"> 
     <div class="sa_blog_center"> 
     <h4 class="sa_blog_title"><a target="_self" title="{{ events.featured_event_title }}" href="#">{{ 
      events.featured_event_title }}</a></h4> 
     <div class="meta"> 
      <span><time datetime="{{post.post_date|date('F j, Y')}}">{{post.post_date|date('F j, Y')}}</time></span> 
      <span>359 Views</span> 
     </div> 
     </div> 
     {{ events.featured_event_summary }} 
     <div class="tagcloud"> 
     {% for term in post.terms('featured_event_tags') %} 
      <span><a href="{{post.term.link}}" title="{{post.term.name}}">{{post.term.name}}</a></span> 
     {% endfor %} 
     </div> 
    </div> 
    </article> 
</div> 

Doch keiner meiner Custome-Datei Felder sind auf den Seiten Archiv oder Kategorie verfügbar. Kann jemand eine Lösung für dieses Problem vorschlagen. Vielen Dank im Voraus ...

Antwort

1

Wenn Sie Timber::get_terms() verwenden, erhalten Sie im Gegenzug ein Array.

Statt für die Existenz eines benutzerdefinierten Bereich der Überprüfung mit {% if events.featured_event_image %} haben Sie wahrscheinlich eine Schleife über die Elemente in events:

{% for event in events %} 
    {% if event.featured_event_image %} 
     {# your code #} 
    {% endif %} 
{% endfor %} 

Oder Sie können direkt das erste Element des Arrays Zugriff mit

{% if event[0].featured_event_image %} 

Auf die gleiche Weise wird {{ events.featured_event_summary }} nicht angezeigt, da das Feld featured_event_summary nicht auf dem Array gefunden werden kann, aber wahrscheinlich in jedem der Elemente des Arrays vorhanden ist.


Wenn Sie {% for term in post.terms('featured_event_tags') %} verwenden, dann fragen Sie alle Bedingungen einer featured_event_tags Taxonomie auf diese Stelle zugewiesen zu bekommen. Aus Ihren Codeauszügen kann ich erkennen, dass Sie nur event_category als Taxonomie registrieren. In Ihren Screenshots kann ich sehen, dass featured_event_tags der Name eines benutzerdefinierten Feldes ist, das in der Taxonomie event_category festgelegt ist.

Um die Bedingungen für eine Stelle zu bekommen, sollten Sie dann tun:

{% for term in post.terms('event_category') %} 

Innerhalb dieses for-Schleife, Sie scheinen zu versuchen, den Link und den Namen für diesen Begriff zu bekommen, aber Sie Zugriff es von Post mit {{ post.term.link }}. Wahrscheinlich sollte es sein

{% for term in post.terms('event_category') %} 
    {{ term.link }} 

{{ post.term }} wird nicht funktionieren, weil term() kein Verfahren von Timber ist Klasse Post. Es gibt nur die terms()-Methode, mit der Sie alle Begriffe einem Beitrag zugewiesen bekommen.


Dies könnte alles Gründe sein, warum nichts in Ihrem Code angezeigt wird. Denken Sie daran, dass Sie auch {{ dump(variable) }} tun können, um den Inhalt einer Variablen in Twig zu überprüfen.

Wenn Sie immer noch stecken bleiben, dann aktualisieren Sie Ihre Frage mit mehr Code und ich kann diese Antwort aktualisieren.

Verwandte Themen