Ondersteuning » Code oplossingen gezocht » A-Z index op specifieke categorie-pagina's

  • Op de volgende website: graperover.com is het de bedoeling dat er op bepaalde categorie-pagina’s een A-Z index komt om de berichten binnen die categorie op letter te kunnen filteren. (voorbeeld: klik!) maar dan dus ook op een aantal andere pagina’s.

    Ik heb een plugin gevonden met de naam WP Alphabet Listing Plugin. Deze maakt echter een index van alle berichten.

    Ik heb voor deze plugin de volgend code in mijn category.php bestand. Deze zet de plugin op de pagina met categorie 17:

    <?php if (in_category('17')) { ?>
            <?php echo do_shortcode('[atoz title="From A to Z:"]'); ?>
               <div class="clear"></div>
            <?php } else { ?>
               <div class="clear"></div>
     <?php } ?>

    Zie pagina

    Hoe kan ik hier meerdere categorieën aan toevoegen?

    Of is er misschien een beter alternatief buitenom deze plugin?

3 reacties aan het bekijken - 1 tot 3 (van in totaal 3)
  • Als de plugin zelf geen filter daar voor heeft kan je de plugin dupliceren en een eigen naamgeving toepassen (zodat je wijzigen niet overschreven worden bij een update). Vervolgens uitzoeken waar hij de posts ophaalt en daar een category filter aan toevoegen. Dit vereist natuurlijk wel wat kennis van programmeren.

    Je kan ook een eigen archief opbouwen door gebruik te maken van WP_Query en een “like” parameter.

    Thread starter Justin Picard

    (@justin-picard)

    Thnx, ik heb zelf deze code gevonden om de plugin op verschillende pagina’s weer te geven, en het lijkt te werken:

    <?php if (is_category('Category A')) : ?>
    <p>This is the text to describe category A</p>
    <?php elseif (is_category('Category B')) : ?>
    <p>This is the text to describe category B</p>
    <?php else : ?>
    <p>This is some generic text to describe all other category pages,
    I could be left blank</p>
    <?php endif; ?>

    Dan zou het bij mij worden:

    <?php if (is_category('17')) : ?>
                    <?php echo do_shortcode('[atoz title="From A to Z:"]'); ?>
                    <div class="clear"></div>
                    <?php elseif (is_category('54')) : ?>
                    <?php echo do_shortcode('[atoz title="From A to Z:"]'); ?>
                    <div class="clear"></div>
                    <?php else : ?>
                <?php endif; ?>

    De ‘else’ laat de overige pagina’s zien zonder de plugin. Het zijn alleen een stuk of 50 categoriepagina’s (allemaal verschilende gebieden).

    Nu nog de filter.

    Thread starter Justin Picard

    (@justin-picard)

    Voor de filter heb ik het volgende gevonden:

    //To read post table and return all posts
    	public function get_all_titles($type)
    	{
    		global $wpdb;
    		//reset
    		$sql = "";
    		$this->html = "";
    		switch ($type)
    		{
    	        case 'post':
    				$sql = "select id, post_title from $wpdb->posts where post_status = 'publish' AND post_type = 'post' ORDER BY post_title";
    	            break;
    	        case 'page':
    	            $sql = "select id, post_title from $wpdb->posts where post_status = 'publish' AND post_type = 'page' ORDER BY post_title";
    	            break;
    	        case 'category':
    	            $sql = "SELECT term_id as id, name as post_title FROM $wpdb->terms ORDER BY name";
    	            break;
    	    }
    
    		$this->result = $wpdb->get_results($sql, ARRAY_A );
    	}

    Hoe kan ik er voor zorgen dat enkel de berichten uit de specifieke categorie worden weergegeven/opgehaald in de plugin?

3 reacties aan het bekijken - 1 tot 3 (van in totaal 3)
  • Het onderwerp ‘A-Z index op specifieke categorie-pagina's’ is gesloten voor nieuwe reacties.