Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777

    Ottimizzare al massimo la funzione

    Salve a tutti,
    sto creando un sito in wordpress ma la questione che vi pongo riguarda più la struttura in php della seguente funzione che ho creato..
    vorrei chiedere consiglio su come ottimizzarla al massimo. magari ho inserito qualche codice di troppo o può essere scritta meglio...tra parentesi la funzione va benissimo...fa quello che le chiedo.
    Codice PHP:



    <?



    // imagine categoria elenco articoli

    function cat_archive($tax,$child,$type){

    //elenco materie post type
    $terms get_terms($tax,array(
         
    'child_of'    => $child,
         
    'hide_empty' => 0
     
    ) );

    //categorie post
    $category get_the_category();
    foreach (
    $category as $categorie){
    $termini[]=$categorie->cat_name;
    }

    // sviluppo elenco materie
    foreach ( $terms as $term ) {
    $materia[]= $term->name;
    }

    //confronto elenco con materia post
    foreach($termini as $elenco){
    if(
    in_array($elenco,$materia)){
    $cat_matstrtolower($elenco);
    $category_id get_cat_ID$elenco );
    $cat_linkget_category_link($category_id);
    }
    }
    if(
    $type =="link"){
    $cat_matucfirst($cat_mat);?>
    <a href="<? echo $cat_link;?>"><?echo $cat_mat;?></a>
    <?}
    elseif(
    $type=="image"){

    // immagine materia di articolo corrispondente?>
    <a href="<? echo $cat_link;?>">
    <img class="catimage radius" title="<?echo $cat_mat;?>"alt="<?echo $cat_mat;?>" src="http:/il link dell'img/<? echo $cat_mat?>.png"></img>
    </a>
    <?}?>
    <?
    }?>
    in pratica estraggo la categoria del post e la voglio visualizzare in formato link oppure come immagine..il post può avere due categorie (materia, questa è sicura) (categoria, questa non lo è...potrei anche non metterla)
    Ultima modifica di amphioxus; 08-08-2014 a 18:21

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Visto che stampi a video un solo link, potresti uscire dal ciclo seguente dopo avere trovato un valore.

    Codice PHP:
    //confronto elenco con materia post
    foreach($termini as $elenco){  
      if(
    in_array($elenco,$materia)){    
        
    $cat_matstrtolower($elenco);    
        
    $category_id get_cat_ID$elenco );    
        
    $cat_linkget_category_link($category_id);
        <<< 
    qui >>>  
      }

    dovresti aggiungere del codice nel caso in cui non trovassi nulla per non scrivere un link "vuoto".
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Visto che stampi a video un solo link, potresti uscire dal ciclo seguente dopo avere trovato un valore.

    Codice PHP:
    //confronto elenco con materia post
    foreach($termini as $elenco){  
      if(
    in_array($elenco,$materia)){    
        
    $cat_matstrtolower($elenco);    
        
    $category_id get_cat_ID$elenco );    
        
    $cat_linkget_category_link($category_id);
        <<< 
    qui >>>  
      }

    dovresti aggiungere del codice nel caso in cui non trovassi nulla per non scrivere un link "vuoto".
    è vero...non avevo considerato questa eventualità...grazie per a dritta

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Come funzionano gli array $termini e $materia ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Dalla tua funzione, non si sa cosa tornino le funzioni richiamate. Mi sembra comunque che hai troppi cicli. Cosa succederebbe se tu prendessi sempre il primo $term->name ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    777
    in pratica
    ho impostato i post in modo tale da avere una materia di riferimento e una categoria.

    esempio: materia:biologia e categoria: alimentazione

    ho una struttura di questo tipo:
    materia(principale): biologia, astronomia,chimica ecce(le sottocategorie)
    categoire(principale): alimentazione ecc(sottocategorie)

    la funzione fa questo
    tramite tax e child le dico di prelevare l'elenco delle sottocategorie relative alla categoria principale da me indicata
    get_the_category mi prende tutte le sottocategorie del post indipendentemente da materia e categorie
    inserisco nell'array $materia l'elenco delle sottocategorie della categoria principale indicata
    inserisco nell'array $termin le sottocategorie del post e poi effettuo il confronto..l'esito positivo mi permette cosi di separare le categorie del post e gestirle alla meglio...in questo caso ho fatto ciò per creare un'immagine della categoria di riferimento o il link verso la categoria del tipo (materia: link)
    il passaggio $termini e $materia l'ho fatto perchè non sono riuscito a fare un confronto diretto come ho provato a fare all'inizio tra $term->cat_name e $categorie->cat_name...pensavo di poterlo fare dato che $term e $category sono array giusto?
    invece ho dovuto riversare in nuovi array questi due parametri

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,361
    Quale confronto volevi fare con i 2 array ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.