• Buongiorno a tutti,

    sto realizzando un tema per wordpress con:

    2 custom post:
    – listino
    – usato

    6 tassonomie:
    – auto: che fa riferimento ai post, e ai 2 custom post “listino” e “usato”
    – moto: che fa riferimento ai post, e ai 2 custom post “listino” e “usato”
    – categorie auto: che fa riferimento ai post
    – categorie moto: che fa riferimento ai post
    – tag auto: che fa riferimento ai post
    – tag moto: che fa riferimento ai post

    i mie file sono:

    index.php per la home del tema

    single.php per i post
    single-listino.php per i post di tipo listino
    single-usato.php per i post di tipo usato

    archive-listino.php che sono una sorta di home per i custom post di tipo listino rispondono all’url: miosito.it/listino
    archive-usato.php che sono una sorta di home per i custom post di tipo usato rispondono all’url: miosito.it/usato

    il mio problema è questo:

    non riesco a filtrare i post e i post custom tramite le tassonomie;

    se digito per esempio:

    miosito.it/listino/fiat/
    miosito.it/usato/audi/

    fiat e audi sono voci di tassonomia mi da sempre 404.

    qualcuno a qualche idea?

    grazie in anticipo per le risposte

Stai visualizzando 5 risposte - dal 1 al 5 (di 5 totali)
  • Chi ha creato la discussione enricocarli

    (@enricocarli)

    Ho risolto così, ma non so se sia la soluzione più corretta:

    nella index.php del tema:

    http://codepad.org/vEIRr6Rf

    grazie a tutti buona giornata

    • Questa risposta è stata modificata 9 anni, 10 mesi fa da Cristiano Zanca.
    Moderator Guido Scialfa

    (@wido)

    Ciao,

    Le tassonomie non sono interne alla struttura del custom post type.
    L’url corretto sarebbe http://miosito.it/auto/fiat ovvero http://miosito.it/tassonomia/termine. Per questo ti viene ritornato un 404.

    Chi ha creato la discussione enricocarli

    (@enricocarli)

    per cui non si possono usare tassonomie con i custom post?

    Moderator Guido Scialfa

    (@wido)

    Si puoi usare tassonomie insieme ad i custom post type, ma la questione qui è che nella struttura delle url rewrite di wordpress, quando il sistema prende i dati nella stringa url e le trascrive in fancy permalinks, non vi è una corrispondenza per la url http://miosito/custom-post-type/tassonomia perchè gerarchicamente le tassonomie sono indipendenti dai custom post types, possono essere assegnati ad un post type ma non ne fanno parte.

    Per indenderci. Le url reali a sinistra e le url riscritte a destra
    miosito.it/?post_type=listino > miosito.it/listino
    miosito.it/?taxonomy=ID_term > miosito.it/auto/fiat/

    Per fare quello che necessiti tu devi creare delle rewrite rules.

    Chi ha creato la discussione enricocarli

    (@enricocarli)

    Ciao Guido,

    grazie mille per le risposte, sto capendo qualcosa forse;

    ho aggiunto nel mio file functions il seguente codice:

    
    	function custom_rewrite_listino() {
    		add_rewrite_rule(
    			'^listino/([^/]*)/?',
    			'index.php?page_id=2&veicolo=$matches[1]',
    			'top'
    		);
    		add_rewrite_rule(
    			'^listino/([^/]*)/([^/]*)/?',
    			'index.php?page_id=2&veicolo=$matches[1]&marca=$matches[2]',
    			'top'
    		);
    		add_rewrite_rule(
    			'^listino/([^/]*)/([^/]*)/([^/]*)/?',
    			'index.php?page_id=2&veicolo=$matches[1]&marca=$matches[2]&modello=$matches[3]',
    			'top'
    		);
    		add_rewrite_rule(
    			'^listino/([^/]*)/([^/]*)/([^/]*)/([^/]*)/?',
    			'index.php?page_id=2&veicolo=$matches[1]&marca=$matches[2]&modello=$matches[3]&allestimento=$matches[4]',
    			'top'
    		);
    
    		//flush_rewrite_rules();
    	}
    	add_action('init', 'custom_rewrite_listino');
    

    ho creato una pagina e l’ho chiamata “Listino”,
    le ho associato un template di pagina, col seguente codice:

    
    <?php /* Template Name: Listino */ ?>
    <?php get_header(); ?>
    <div class="row">
    	<div class="small-12 medium-8 large-8 columns">
    		<h1>Listino</h1>
    		<?php
    			$pagina_corrente = "http://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    			$url_listino = str_replace(get_site_url()."/", "", $pagina_corrente);
    			$url_listino2 = substr($url_listino, 0, -1);
    			$array_listino = explode('/', $url_listino2);
    			print_r($array_listino);
    		?>
    	</div>
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    

    ricavo un array dall’url, e con quei parametri mi estraggo dal db ciò che voglio;
    secondo te fa schifo come soluzione o può andare?

    sono alle prime armi con wordpress e anche con php =)

    grazie mille
    buona serata

Stai visualizzando 5 risposte - dal 1 al 5 (di 5 totali)

Il topic ‘[SOLVED] template da zero’ è chiuso a nuove risposte.