Problem beim Auslesen der Optionspage

  • Moin,

    ich baue gerade eine Optionspage für ein Theme von mir, um es künftig benutzerfreundlicher zu machen. An einer Stelle (index.php) musste man bisher im Code Kategorie-IDs in ein Array schreiben:

    PHP
    $display_categories = array(3,4,5,6);

    Genau den Inhalt des Arrays (also die IDs) sollen jetzt über die Optionspage eingebaut werden. Auf der Optionspage bekomme ich das ja auch hin, aber die Ausgabe in der index.php bekomme ich nicht gebacken. Die Variable, die die IDs speichert lautet: $prinz_homecats. Ich habe nun folgendes versucht:

    PHP
    $display_categories = array($prinz_homecats);

    Das führt aber nur dazu, dass ein Beitrag nur aus der Kategorie 3 (die erste im Array) ausgegeben wird. Die anderen nicht.

    Also wie muss ich das notieren, damit die Ausgabe funktioniert?

    Hier der komplette Codeteil, falls wichtig:

    PHP
    $display_categories = array(3,4,5,6);
    foreach ($display_categories as $category) { ?>
        <div class="clearfloat">
          <?php query_posts("showposts=$prinz_homecatsnumber;&cat=$category");
            $wp_query->is_category = false;
            $wp_query->is_archive = false;
            $wp_query->is_home = true;

    Das Ganze führt dazu, dass jeweils 1 Beitrag (oder was eben auch immer in derr Optionspage eingestellt wird) aus den eingetragenen Kategorien untereinander in der mittleren Spalte ausgegeben wird. Was ja bisher mit manueller Eingabe der ID´s auch funktioniert.

    Nebenbei funktioniert die Eingabe der Anzahl (hier: 1) über die optionspage auch einwandfrei (Ausgabe über $prinz_homecatsnumber)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • PHP
    query_posts("showposts=$prinz_homecatsnumber;&cat=$category");

    Das Semikolon vor &cat dürfte falsch sein

    und zudem müsste $prinz_homecatsnumber Komma getrennt ausgegeben werden

    PHP
    $prinz_homecatsnumber = implode(',',$display_categories);

    Wenn ich dich richtig verstanden habe, sollte die Ausgabe so funktionieren

  • Hi,

    danke für die schnelle Reaktion, aber leider ist das nicht das Problem. Wie gesagt, ist ja auch das Auslesen der IDs ($prinz_homecats) das Problem, nicht die Anzahl der auszugebenden Artikel ($prinz_homecatsnumber).

    Trage ich die IDs manuell ins Array (wie im Beispiel 1), funktioniert die Ausgabe...übrigends sowohl mit, als auch ohne Semikolon ;)


    1. DAS funktioniert:

    PHP
    $display_categories = array(3,4,5,6);
    foreach ($display_categories as $category) { ?>
        <div class="clearfloat">
          <?php query_posts("showposts=$prinz_homecatsnumber;&cat=$category");
            $wp_query->is_category = false;
            $wp_query->is_archive = false;
            $wp_query->is_home = true;

    2. DAS funktioniert NICHT:

    PHP
    $display_categories = array($prinz_homecats);
    foreach ($display_categories as $category) { ?>
        <div class="clearfloat">
          <?php query_posts("showposts=$prinz_homecatsnumber;&cat=$category");
            $wp_query->is_category = false;
            $wp_query->is_archive = false;
            $wp_query->is_home = true;
  • PHP
    <?php echo $prinz_homecats; ?>

    So müsste ein Array "Array" ausgeben

    PHP
    <?php print_r($prinz_homecats); ?>

    Das wird dann bei dir so ausgegeben

    PHP
    Array ([0] => 3,4,5,6 )

    richtigerweise sollte es aber so ausgegeben werden

    PHP
    Array ([0] => 3 [1] => 4 [2] => 5 [3] => 6)

    Ergänz mal folgendes, das sollte funktionieren

    PHP
    $prinz_homecats = explode(",",$prinz_homecats);
    $display_categories = array($prinz_homecats);
  • Ich bin echt zu unfähig...wiewowas muss ich ergänzen?

    Ich hab jetzt das versucht, aber das geht nicht:

    PHP
    $prinz_homecats = explode(",",$prinz_homecats);
    $display_categories = array($prinz_homecats);
    foreach ($display_categories as $category) { ?>
        <div class="clearfloat">
          <?php query_posts("showposts=$prinz_homecatsnumber&cat=$category");
            $wp_query->is_category = false;
            $wp_query->is_archive = false;
            $wp_query->is_home = true;
  • So habe ich das gerade mal gestestet und es hat funktioniert, bis auf die letzte geschweifte Klammer kannst du das komplett übernhemen

  • SUPER, danke! Es funktioniert. Nur eine Kleinigkeit noch. Jetzt stimmt die Kategorie Überschrift bzw. deren Link nicht mehr.

    So schaut´s jetzt aus:

    Zwischen den h3 Tags wird der Name der Kategorie als Link zur Kategorie ausgegeben. Der name wird auch richtig angezeigt, aber der Link verweist bei allen Überschriften auf Kategorie 1 (News), die aber hier gar nicht in der Auflistung erscheint.

    Siehe > http://www.wp-themes.der-prinz.com/magazine/

    Hast Du auch dafür ne Lösung?

  • Leider keine Änderung:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!