Benutzerdefinierte Archivseite mit Timber-RSS-Feed-Problem

Lesezeit: 2 Minuten

Benutzer-Avatar
sidonaldson

Ich habe darin eine benutzerdefinierte Archivseite erstellt WordPress verwenden Timber und die Route-Methode. Die Seite funktioniert gut und zeigt eine Kombination aus Custom Post Types aber der Feed unter {url}/feed existiert nicht.

Hinweis: Die vorherige Antwort wurde bearbeitet, um verwirrende Nebenprobleme zu entfernen.

// create CPT (x 3)
register_post_type($name, array(
  'label' => 'custom1',
  'public' => true,
  'capability_type' => 'page',
  'supports' => array( 'title', 'author', 'excerpt', 'revisions', 'thumbnail'),
  'taxonomies' => array('post_tag'),
  'has_archive' => true
));

// CPT route
Routes::map('test/filter/:filter', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' )
    );
    $filter = $params;
    Routes::load('archive.php', $filter, $query, 200);
});

// paging CPT route
Routes::map('test/filter/:filter/page/:page', function($params){
    $query = array(
      'post_type' => array('custom1', 'custom2', 'custom3' ),
      'paged' => intval($params['page'])
    );
    $filter = $params;
    Routes::load('archive.php', $filter, $query, 200);
 });

  • Schau dir meine aktualisierte Antwort unten an ….

    – Jared

    21. Juli 2016 um 12:43 Uhr

  • Benutze niemals query_posts

    – dingo_d

    23. Juli 2016 um 8:25 Uhr

Benutzer-Avatar
Jared

@sidonaldson: Ahhhh, jetzt verstehe ich, wonach du suchst! Ja, das passiert auf WP-Ebene, nicht auf Timber

add_action( 'pre_get_posts', function ( $query ) {
    if ( $query->is_main_query() && !is_admin() && is_post_type_archive('agency')) {
        $query->set( 'post_type', array('post', 'custom', 'custom2') );
    }
} );    

Vorherige Antwort….

@sidonaldson – dies ist eine ungetestete Antwort, aber hier ist, was Sie versuchen sollten:

query_posts ist im Grunde das WordPress-Äquivalent eines Vorschlaghammers, der RSS, Paginierung und alles andere beeinflusst. Hier ist, was funktionieren sollte …

$posts_query = array(
    'post_type' => array('post', 'custom', 'custom' ),
    'tag__in' => $tag_array,
    'orderby' => 'date',
    'post_status' => 'publish',
    'paged' => $paged
);
// First let's get this set for pagination
query_posts($posts_query);
$context['posts'] = Timber::get_posts($posts_query);
$context['pagination'] = Timber::get_pagination();

// now let's use it to hit RSS
$post = new TimberPost('override_page_slug');
query_posts(array( 'p' => $post->ID ));
$context['post'] = $post;

Timber::render( 'page-override_page_slug.twig', $context );

  • Das Verschieben des Post-Resets nach der ursprünglichen Post-Auflistung hilft, da kein fehlerhafter Feed mehr angezeigt wird. Aber ich denke, ich könnte noch spezifischer sein; Ich wollte die feed die Liste der Posts und nicht die Überschreibungsseite sein. Klingt wie eine WordPress-Sache im Gegensatz zu timber. Vielen Dank

    – sidonaldson

    4. März 2016 um 14:56 Uhr

  • Ich habe das Problem mit einer neuen Erkenntnis aktualisiert. Weitere Hilfe wäre super 🙂

    – sidonaldson

    20. Juli 2016 um 16:16 Uhr

1369690cookie-checkBenutzerdefinierte Archivseite mit Timber-RSS-Feed-Problem

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy