• Hallo,

    ich versuche ein Plugin (testplugin) zu schreiben, dass sowohl strings als parameter annehmen soll, als auch ein Array. Bei der Übergabe eines solchen Arrays habe ich aber Probleme (Unwissenheit). Um den Shortcode auszuführen habe ich das Plugin ezphp im Einsatz.
    Auf der Page soll wie folgt die Übergabe so funktionieren:
    [php]
    $arr[„multiselect“] = true;
    $arr[„height“] = „250“;
    $arr[„autowidth“] = true;
    $arr[„rowNum“] = 15;
    echo do_shortcode( ‚[testplugin var1=“10″ var2=$arr ]‘ );
    [/php]
    Frage: Wie kann ich ein Array als Parameter übergeben ?

    Lg
    Gerhard

Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)
  • Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Oh. Interessant. [php] ist ein Shortcode, um PHP in Blogbeiträgen auszuführen? Damit könnte man ja bequem einige Sicherheitskonzepte von WordPress umgehen. Ich bin mir jetzt nicht sicher, ob Du das wirklich willst.

    Abgesehen davon könnest Du doch in der functions.php einen Shortcode definieren mit

    add_shortcode( 'testplugin', 'my_shortcode_testplugin');
    function my_shortcode_testplugin() {
      $a = shortcode_atts( array(
             'var1'                 => '1',
              'multiselected' => true,
              'height'             => '300',
             'autowidth'       => true,
             'rowNum'         => '25',
          ), $atts );
      $out =  "var 1 = {$a['var1']}<br>;
      $out .= "Multiselected = {$a['multiselected']}<br>";
      $out .= "height = …
      …
      return $out;
    }
    
    // im Beitragseditor
    [testplugin var1="10" mutliselected=false etc …]
    Thread-Starter ghabiche

    (@ghabiche)

    Hallo,
    ich denke ich muss da etwas Klarheit hineinbringen.
    Da es bei WordPress standardmässig keine Möglichkeit gibt PHP zu exekutieren gibt es eine Vielzahl von PlugIns die dieses ermöglichen. U.a. das Plugin „ezphp“ mit dem man mit shortcode [php] und [/php] php code ausführen kann.
    Wozu brauche ich das ??
    Ich muss Seiten erzeugen auf denen Grids mit Daten aus der Datenbank angezeigt werden (mitunter komplexe Master-Detail). Dazu verwende ich PHP Grid Control (JQgrid) ( http://www.phpgrid.org ). Der Hersteller bietet aber nur ein sehr rudimentäres Plugin für WordPress an (phpgrid).
    Mein Ziel ist es nun ein Plugin zu erstellen, das dynamisch ein Array von Daten bekommt (so funktioniert PHP Grid Control) aus dem dann zur Laufzeit ein Datengrid erstellt wird.

    Die Funktion „do_shortcode“ ist ja eine Worpress eigene und in der möchte ich lediglich ein Array von Daten übergeben und in der Plugin Funktion weiterbearbeiten.
    habe die Funktion schon dahigehend geändert (aber ohne Erfolg):

    <?php
    $arr["multiselect"] = true;
    $arr["height"] = "250";
    $arr["autowidth"] = true;
    $arr["rowNum"] = 15;
    echo do_shortcode( '[testplugin var1="10" var2="'.$arr.'" ]' );
    ?>

    Lg
    Gerhard

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Hast Du dich mal gefragt, warum es bei WordPress „standardmässig keine Möglichkeit gibt PHP zu exekutieren“?

    do_shortcode() im Beitragseditor zu verwenden klingt für mich einfach falsch. Eine Alternative habe ich Dir genannt, auch wenn Du nicht darauf eingehst.

Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)

Das Thema „shortcode mit Variablen als Parameter“ ist für neue Antworten geschlossen.