Support » Plugins » individuelle Plugin Link mit Target verwenden

  • Hallo!
    Ich verwende ein individuelles Plugin wo das Target nicht funktioniert.
    Der code sieht wie folgt aus:

    $items[‚my-dokumente‘] = array(
    ‚url‘ => ‚https://seite.xx‘,
    ‚text‘ => esc_html__( ‚My.Dokumente‘, ’seite‘),
    ‚user_action‘ => ‚my-dokumente‘,
    ‚target’=> „_blank“
    );

    Leider funktioniert aber das target mit _blank nicht. Ich bekomme bei der fertigen Seite kein Target angezeigt, sondern der Llink wird mit der bestehenden Seite ersetzt.

    Hoffe es kann mir jemand weiterhelfen, wie ich das Target=“_blank“ richtig verwenden kann.
    Vielen Dank

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Dein Code zeigt nur ein Array mit – vermutlich – Argumenten einer Funktion, die wir nicht kennen. Wird 'target' von der Funktion überhaupt als Argument übernommen? Ohne die Funktion zu kennen, können wir dir dazu keinen Rat geben.

    Abgesehen davon ist die Verwendung von target="_blank" aus verschiedenen Gründen nicht zu empfehlen.

    Thread-Starter haiflosse2

    (@haiflosse2)

    Vielen Dank für die Antwort.
    Hier die gesamte Funktion

    function seite_account_menu_items( $items ) {
        $dashboard_url = edgt_lms_get_dashboard_page_url();
        $items['my-mittagessen'] = array(
            'url'  => esc_url(add_query_arg( array( 'user-action' => 'my-mittagessen' ), $dashboard_url)),
            'text' => esc_html__( 'My.Mittagessen', 'seite'),
            'user_action' => 'my-mittagessen'
        );
    	$items['my-audio'] = array(
            'url'  => 'https://seite.yy',
            'text' => esc_html__( 'My.Audio', 'seite'),
            'user_action' => 'my-audio',
            'target'=> "_blank"
        );
    	$items['my-dokumente'] = array(
            'url' => 'https://seite.xx',
            'text' => esc_html__( 'My.Dokumente', 'seite'),
            'user_action' => 'my-dokumente',
    		'target' => '_blank'
        );
       
    	
        unset($items['courses']);
        unset($items['course-favorites']);
        return $items;
    
    }
    add_filter('edgt_membership_dashboard_pages', 'seite_lms_add_profile_navigation_pages', PHP_INT_MAX, 1);
    

    Ich konnte auf der Seite leider nicht ganz feststellen, was die Alternative für _blank (Öffnen eines Fenster in einem neuen Tab) wäre.

    Leider habe ich die Seite nicht erstellt, soll es aber weiter warten.
    Danke für eine Hilfe.

    Nehmen wir mal an, du bist WordPress Core-Entwickler und erstellst gerade eine neue Funktion, die Argumente ausgeben soll:

    $args = array(
    'nickname' => 'pixolin',
    'name' => 'Bego',
    );
    function say_hello( $args ) {
      echo "Hallo $args['name'], dein Nutzername lautet $args['pixolin'].";
    }

    Nun möchtest du Programmierern die Möglichkeit geben, eigene Werte auszugeben. Deshalb teilst du deiner Funktion mit, dass sie eine Filterfunktion ausführen soll:

    $args = array(
    'nickname' => 'pixolin',
    'name' => 'Bego',
    );
    apply_filter( 'say_hello', $args );
    function say_hello( $args ) {
      echo "Hallo $args['name'], dein Nutzername lautet $args['pixolin'].";
    }

    Damit haben wir eine Schnittstelle geschaffen, die andere Programmierer nutzen können. Mit …

    add_filter( 'say_hello', 'ich_will_aber_was_anderes' );
    function ich_will_aber_was_anderes( $args ) {
      $args = array(
        'profile' => 'haiflosse2',
      );
      return $args;
    }

    … änderst du einen Wert der Argumente, die an die Funktion say_hello() übergeben werden. Du kannst zwar auch weitere Argumente hinzufügen, etwa …

    function ich_will_aber_was_anderes( $args ) {
      $args = array(
        'wohnort' => 'köln',
      );

    … nur wird dieser Wert in der Funktion say_hello() gar nicht erst berücksichtigt.

    (Vielleicht etwas besser erklärt: WordPress Actions, Filters and Hooks – a Guide for Non-Developers.)

    Wenn ich nachfrage, ob das Argument in der Funktion berücksichtigt wird, hilft es wenig, wenn du in der Antwort den Filter nennst. 🙂 Schau doch mal, wo apply_filters( 'edgt_membership_dashboard_pages', $items); aufgerufen wird und welche Argumente des Array $items dann auch wirklich verwendet werden.

    Thread-Starter haiflosse2

    (@haiflosse2)

    Vielen Dank für die Antwort.
    Das Beispiel habe ich nicht ganz verstanden.

    ein apply_filters kann ich in der selben Datei leider nicht finden. Vermutlich liegt die wo anders – oder?
    Ich habe leider keinen Zugriff auf die Dateien z.b. per ftp.

    Vielleicht hat noch jemand eine Idee dazu.
    Danke

    Du weißt aber, wie man in PHP einer Funktion Argumente übergibt und dass es wenig hilft, einer Funktion Argumente zu übergeben, die in der Funktion nicht verwendet werden?

    Du bearbeitest ein Plugin, ohne per FTP auf die Dateien zugreifen zu können?
    Dann … viel Erfolg.

Ansicht von 5 Antworten - 1 bis 5 (von insgesamt 5)
  • Das Thema „individuelle Plugin Link mit Target verwenden“ ist für neue Antworten geschlossen.