1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

loop nach category filtern

Dieses Thema im Forum "Content Management Systeme (CMS)" wurde erstellt von elfi812, 27. Oktober 2016.

  1. elfi812

    elfi812 Mitglied

    Hallo,
    nachfolgend habe ich von einem Template den Code des Portfolio-Loops. Ich wollte ihn nach Kategorien filtern lassen...einfach bei Klick auf hart reingecodete Textlinks. Ich denke es ist gar nicht schwer, für mein Wissen jedoch leider schon, hat wer eine Lösung?

    Der Code
    <main id="main">
    <?php
    $is_ajax = get_theme_mod( 'portfolios_page_ajax' );
    $layout = get_theme_mod( 'portfolios_page_layout', 3 );
    global $wp_query, $paged;
    $args = array(
    'post_type' => 'portfolio',
    'paged' => $paged,
    'post_status' => 'publish',
    'posts_per_page' => get_theme_mod( 'portfolios_page_number', 12 ),
    'order' => get_theme_mod( 'portfolios_page_order', 'DESC' ),
    'orderby' => get_theme_mod( 'portfolios_page_orderby', 'ID' ),
    'suppress_filters' => 0,
    );

    $wp_query = new WP_Query( $args );
    $num_post = count( $wp_query->get_posts() );

    ?>
    <div class="portfolios-content table-portfolio portfolios-<?php echo esc_attr( $layout ); ?>-columns n-<?php echo esc_attr( $num_post ); ?>">
    <div class="portfolio-row table-row">

    HIER sollen die Textlinks rein "Alle, Katergorie 1, Kategorie 2".
    <?php

    $count = 0;
    while ( $wp_query->have_posts() ) {
    $wp_query->the_post();
    $count ++;
    ?>
    <div data-id="<?php echo get_the_ID(); ?>" <?php post_class( 'portfolio table-col '.( $is_ajax ? 'ajax' : '' ) ); ?>>
    <a class="portfolio-link" href="<?php the_permalink(); ?>" rel="bookmark" title="<?php esc_attr( get_the_title() ); ?>"></a>
    <?php if (has_post_thumbnail()) :
    ?>
    <div class="portfolio-thumb-wrapper">
    <div class="portfolio-thumb" style="background-image:url('<?php echo get_field('portfolio-bild'); ?>');" >
    <div class="loading-icon">
    <div class="spinner"></div>
    </div>
    </div>
    </div>
    <?php endif; ?>
    <div class="portfolio-elements">
    <?php
    echo get_the_term_list( get_the_ID(), 'portfolio_cat', '<div class="portfolio-cat">', ', ', '</div>' );
    ?>
    <?php the_title('<h3 class="portfolio-title">', '</h3>'); ?>
    </div>
    </div>
    <?php

    if ( $count % $layout == 0 && $count < $args['posts_per_page'] ) {
    echo '</div><!-- /.portfolio-row -->'."\n";
    echo '<div class="portfolio-row table-row">'."\n";
    }

    }

    ?>
    </div><!-- /.project-row -->
    </div><!-- /.portfolios-content -->

    <?php

    the_posts_navigation( array(
    'prev_text' => __( 'Weitere Projekte', 'my-theme' ),
    'next_text' => __( 'Neue Projekte', 'my-theme' ),
    'screen_reader_text' => __( 'Projekt Navigation', 'my-theme' ),
    ) );

    wp_reset_query();
    ?>
    </main><!-- #main -->
     
  2. Jan-Frederik Stieler

    Jan-Frederik Stieler Monsterator Moderator

    Hi,
    versuch mal
    PHP:
    1. <?php wp_list_categories('show_count=1&title_li=<h2>Categories</h2>'); ?>
    Grüße
     
  3. elfi812

    elfi812 Mitglied

    Das geht in die richtige Richtung aber passt nicht ganz.
    Das ist ein "custom post type" namens "portfolio", der hat dann die "taxonomy" namens "portfolio_cat" (...und er hat auch ein eigenes Template, dass es als Grid-Layout darstellt.)
    Ich schaffe es bereits dass ich diese Custom-Categories aufliste, aber dann klicke ich drauf und es bringt sie mir in der Ansicht des normalen Blog-Kategorie-Template, aber oben dieser Loop passiert in einem eigenen (Page-)Template namens "template-portfolio.php".

    Vor langer Zeit hatte ich sowas mal gelöst mit einem Plugin wo man für verschiedene Kategorien verschiedene category-templates vergibt um somit jeweils verschiedene Kategorie-Designs umzusetzen.
    Aber hier diese Seite kann das eigentlich auch ohne... es gibt nur ein einziges category-template für den Blog und der Portfolio-Loop oben passiert wiederum in einem eigenen anderen Seitentemplate.
    Ich brauche da also eher etwas das Kategorien FILTERT, aber nicht den Standard-Kategorielink aufruft.

    Wahrscheinlich irgendwie if Bedingungen in den Loop oben reinbauen, aber ich weiß nicht welche und wie genau...??
     
  4. elfi812

    elfi812 Mitglied

    War irgendwie doch zu kompliziert.
    Jetzt hab ich ein Plugin gefunden wo man filterbare Loops bequem zusammen klicken kann (Livemesh SiteOrigin Widgets)
     
Die Seite wird geladen...