Supporto » Varie ed eventuali » myslq/php: come avere in una pagina i posts di una carta “categoria”?

  • Risolto doctorsubtilis58

    (@doctorsubtilis58)


    Salve. Vorrei usare il database di wordpress anche per raccogliere in pagine web dinamiche i miei posts, in base alla loro categoria di appartetenza.
    ma nella tabella posts del database di woprdpress non riesco a trovare dove siano le categorie…

Stai visualizzando 7 risposte - dal 1 al 7 (di 7 totali)
  • 1) ovviamente volevo dire “certa”, non “carta”.
    2) nel mio sito vorrei avere a) il blog con wordpress non “al posto di”, ma “accanto a” pagine web da me sviluppate. Per questo vorrei inserire anche in sezioni del sito i posts nelle rispettive categorie (le categorie corrispondono alle sezioni del sito).

    Ciao @doctorsubtilis58,

    invece di fare un accesso diretto alle tabelle, potresti integrare WordPress nelle pagine del sito in cui vuoi visualizzare i post ed utilizzare le funzioni del CMS per estrarre i dati. In questo modo non dovresti preoccuparti di capire quali campi leggere e le relazioni tra le tabelle.

    C’è un articolo specifico sul Codex che tratta di questo argomento:
    https://codex.wordpress.org/Integrating_Wordpress_with_Your_Website

    La pagina riporta due esempi di estrazione degli articoli che puoi usare come punto di partenza.

    Per personalizzare ulteriormente la query (ad esempio specificare la categoria), controlla la documentazione della funzione get_posts():
    https://developer.wordpress.org/reference/functions/get_posts

    Spero di averti dato qualche indizio utile.
    Buona giornata.

    • Questa risposta è stata modificata 3 settimane, 5 giorni fa da Andrea Porotti.

    Molto interessante. Darò senz’altro un’occhiata e vi farò sapere.
    Grazie mille!

    Funziona, grazie!
    Però il comando che ho dovuto usare

    <?php 
    /* Short and sweet */
    require('wordpress/wp-blog-header.php');
    get_header(); 
    ?>

    Inserisce tutto l’header dei files wordpress, creando un doppione col mio codice (ho due <html> e due doctype.
    Non ci sarebbe modo di inserire solo il codice strettamente necessario a collegare il mio php al database (senza doppioni, con un codice più leggero)?
    Grazie mille!

    Puoi tralasciare la funzione get_header() perchè in effetti è quella che carica l’header del template attivo in WordPress.

    Prendi come riferimento l’esempio “Generate a list”, l’ho provato e funziona.

    In sostanza dopo aver incluso il file wp-blog-header.php puoi passare subito all’estrazione dei dati.

    Ciao!

    Hai ragione! Così è perfetto:

    <?php 
    /* Short and sweet */
    require('wordpress/wp-blog-header.php');
    ?>
    <?php
    global $post;
    $args = array( 'category' => 565 );
    $myposts = get_posts( $args );
    
    foreach( $myposts as $post ) :	setup_postdata($post); ?>
    <h2><?php the_title(); ?></h2>
    <p><?php the_content(); ?></p>
    <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a><br />
    <?php endforeach; ?>

    Dove 565 è la categoria che voglio sia visualizzata (nel mio caso = “office”).

    Grazie mille!

    • Questa risposta è stata modificata 3 settimane, 4 giorni fa da doctorsubtilis58.

    Tra l’altro ho appena scoperto che posso usare non solo la category, ma anche i tags: ad esempio
    $args = array( 'tag' => 'css' );
    Ottimo!

Stai visualizzando 7 risposte - dal 1 al 7 (di 7 totali)
  • Devi essere collegato per rispondere a questo topic.