innanzi tutto un saluto generale dato che è la prima volta che scrivo qui sul forum, quindi ciao a tutti!!!
In seconda istanza chiedo scusa se la sezione è errata, ma ero in dubbio se scrivere qui o nella sezione di mysql, ma alla fine ho creduto che fosse più opportuna questa dato che il problema è con wordpress e non con mysql
Vengo rapidamente al dunque:
per una serie di motivi che non sto qui ad elencare ho l'esigenza di visualizzare in home l'ultimo articolo inserito in ogni pagina del blog. Mi spiego meglio: ho una serie di pagine (interviste, ricette, racconti) in ognuna di queste pagine ci saranno degli articoli e nella home ho necessità di visualizzare l'ultimo articolo inserito in ciascuna pagina, quindi, a conti fatti, in home dovrò avere l'ultimo articolo inserito nella pagina interviste, l'ultimo della pagina ricette ecc ecc. Navigando un po' ho visto che c'è una soluzione lavorando sull'id dell'articolo e sulle categorie, quindi il mio problema è stato parzialmente risolto, resta però il fatto di dovermi procurare l'id dell'articolo che ovviamene sarà diverso ad ogni inserimento. Per fare questo ho pensato di andare a rompere le scatole al database interrogandolo opportunamente con una query che mi restituisse il risultato desiderato;
ho faticato non poco nonostante non sia un novellino, ma alla fine sono riuscito a trovare le tabelle che potevano aiutarmi e si tratta rispettivamente della tabella term_relationships e term_taxonomy.
Per non portarla alla lunga, riesco ad estrarre il dato di mio interesse (ovvero l'id dell'ultimo articolo inserito nella categoria da me specificata) tramite questa query
Codice:
SELECT `object_id` FROM `avwp_term_relationships` INNER JOIN `avwp_term_taxonomy` ON `term_taxonomy_id` = `term_taxonomy_id`
WHERE `term_id` = 12 AND `taxonomy` = "category" ORDER BY `object_id` DESC LIMIT 0 , 1
ora il mio problema nasce dal fatto che così come è scritta, la condizione della ON genera in mysql un'ambiguità (e non ha tutti i torti a dire il vero) perchè non riesce a capire quale campo appartiene alla tabella term_taxonomy e quale alla tabella term_taxonomy_relationships
a questo punto, quindi, ho deciso di modificare la condizione di on usando la seguente sintassi
Codice:
ON `avwp_term_relationships.term_taxonomy_id` = `avwp_term_taxonomy.term_taxonomy_id`
ma a questa query mysql mi risponde dicendo che non esiste un campo con quel nome.
La soluzione che ho trovato e che funziona (perchè la query mi restituisce il risultato che mi serve) è quella di cambiare nome al campo di una delle due tabelle, in questo modo, ad esempio:
Codice:
SELECT `object_id` FROM `avwp_term_relationships` INNER JOIN `avwp_term_taxonomy` ON `term_taxonomy_id2` = `term_taxonomy_id`
WHERE `term_id` = 12 AND `taxonomy` = "category" ORDER BY `object_id` DESC LIMIT 0 , 1
il problema che ho, a questo punto, è che nel blog non vedo più gli articoli che avevo inserito, o meglio, gli articoli ci sono, xò non vengono visualizzati. E' chiaro che il problema risiede nel fatto che ho cambiato nome ad un campo di una tabella generata da wordpress e che quindi si è sputtanato qualcosa all'interno dei file che vanno a richiamare i post.. La domanda che vi pongo, quindi, è la seguente: che file devo modificare per far si che il blog riconosca la tabella con quel campo modificato e quindi mi visualizzi gli articoli vecchi ed i nuovi che aggiungerò?