Výpis unikátních hodnot uživatelských polí

Úvodní stránka Fórum podpory WordPressu Pluginy (funkčnost webu) Výpis unikátních hodnot uživatelských polí

Zvolené téma obsahuje celkem 7 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel  mackopu a poslední změna je stará 8 let, 11 měsíců.

Aktuálně je na stránce zobrazeno 8 příspěvků - 1. až 8. (z celkem 8)
  • Autor
    Příspěvky
  • #23111

    mackopu
    Participant

    Zdravím,
    u článků jsem si vytvořil uživatelské pole “puvodni autor”, kam zadávám (jak je z názvu patrno) původní autory článků (např. Jiří Novák), které nechávám vypsat pod nadpisem článku pomocí get_post_meta($post->ID, ‘puvodni autor’, true).
    Nyní bych potřeboval na samostatné stránce vypsat unikátní jména všech těchto autorů, nejlépe jako odkazy na výpis článků, jejichž původními autory jsou.
    Toto nefunguje:

    function dd_custom_authors_display()
    {
        global $post;
     
        $puvodni_autori = get_post_meta( $post->ID, 'puvodni autor' );
     
        $return  = "";
        $return .= "<ul>";
     
        if (!empty($puvodni_autori))
        foreach($puvodni_autori as $puvodni_autor)
        {
            $return .= "<li>";
            $return .= $puvodni_autor;
            $return .="</li>";
     
        }
        $return .= "</ul>";
        return $return;
    }
    echo dd_custom_authors_display();

    Máte nějaký nápad?

    #23113

    kidnec
    Participant
    Web

    tak hned první bych vyzkoušel vyměnit “puvodni autor” za “puvodni_autor”. Mezera podle mě nebude ideální.

    jinak kód vypadá na první pohled v pohodě. Tady jde o to, jak vypadá vstupní pole, protože když pouzijes tenhle kód, počítáš s obsahem typu array …. tedy vstup by měl být input, v kterém budeš mít autory oddelene carkou a pri ulozeni z toho udelas pole ktere ulozis jako meta “puvodni_autor”

    #23114

    mackopu
    Participant

    1. Jak hromadně (a bezpečně) změním „puvodni autor“ na „puvodni_autor“, aniž bych to musel pracně přepisovat u všech příspěvků?
    2. Tohle už funguje v pohodě:

    $dotaz = mysql_query("SELECT DISTINCT meta_value 
                                  FROM wp_postmeta 
                                  WHERE meta_key = 'puvodni autor'
                                  ORDER BY meta_value");
    $pocet = mysql_num_rows($dotaz);
    echo '<h3>Celkem '.$pocet.' autorů</h3>';
    echo '<ul>';
    while($zaznam = mysql_fetch_array($dotaz)) {
      $dotaz_2 = mysql_query("SELECT post_id 
                                    FROM wp_postmeta 
                                    WHERE meta_key = 'puvodni autor'
                                    AND meta_value = '".$zaznam["meta_value"]."'");
      $pocet_2 = mysql_num_rows($dotaz_2);
      echo '<li><a href="">'.$zaznam["meta_value"].'</a> ('.$pocet_2.')</li>';
    }
    echo '</ul>';

    Teď ještě ty odkazy na výpis jejich článků…

    #23116

    kidnec
    Participant
    Web

    1.) kód snad mate v šabloně ne?

    Odkaz na autorův archiv najdeš po zadani “wp get author archive link”

    #23120

    kidnec
    Participant
    Web

    1.) špatně jsem předtím pochopil, ideální bude, když při uložení objektu vezmete ID current user a vložíte ho do pole, které pak uložíte do meta post. Tím zajistíte, že každý kdo klikne na uložit, aktualizovat atd, bude v seznamu autorů.

    #23123

    mackopu
    Participant

    Stále si nerozumíme. Ti autoři nemají registraci – nejsou zadáni v uživatelích. Jedním z nich může být třeba Karel Čapek. Prostě ty původní autory potřebuji zadávat do uživatelského pole a pak je na nějaké stránce vypsat s odkazy na články, v jejichž uživatelském poli jsou zadáni.

    #23126

    kidnec
    Participant
    Web

    nebylo by to vhodné řešit pomocí štítků? pokud je již používáte, můžete si jednoduše vytvořit vlastní taxonimii ala štítky(tagy) a pak bude jednoduché je u článků vyklikávat.

    #23132

    mackopu
    Participant

    Díky, problém vyřešen.

Aktuálně je na stránce zobrazeno 8 příspěvků - 1. až 8. (z celkem 8)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.

WordPress – novinky, návody a zajímavosti