Support » Allgemeine Fragen » Filter ohne Variablen-Übergabe

  • andiundpolylangsindfreunde

    (@andiundpolylangsindfreunde)


    Hey,

    Ich würde gerne einen Filter nutzen, um den Text des „XX Treffer“ Button anzupassen.

    Ich habe den richtigen Filter, weiß aber nicht wie ich vorgehen soll, weil ja keine Variable übergeben wird, sondern der String „%s“.

    Das ist der Plugin Code:

    <button type="submit" class="immomakler-submit btn btn-primary">
    <span class="glyphicon glyphicon-search"></span> 
    <?php echo sprintf(apply_filters('immomakler_search_button_text', __('%s Treffer', 'immomakler')), $button_query->found_posts); ?>
    </button>

    Das ist mein Filter:

    add_filter( 'immomakler_search_button_tex', 'replace_text_immomakler_search_button_text' );
    function replace_text_immomakler_search_button_text( WAS KOMMT HIER HIN ) {
    
    return $text;
    }

    Vielen Dank für eure Zeit!

    Moderationshinweis: Bitte verwende künftig beim Erstellen von Forenbeiträgen im Beitragseditor zur Formatierung von Code den [code]-Button. Dadurch werden deine Beiträge für andere lesbarer, was deine Chancen auf eine Antwort erhöht. Grüße, Bego

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 1 Antwort (von insgesamt 1)
  • __('%s Treffer', 'immomakler'))

    macht nicht so richtig Sinn, weil __(…) eine Übersetzungsfunktion ist, mit der die Zeichenkette (hier: %s Treffer) übersetzt werden soll. „Treffer“ ist aber schon der übersetzte Begriff. 🤓

    Wenn du apply_filters( 'name_des_filters', 'ursprünglicher Text') verwendest, wird mit

    add_filter( 'name_des_filters', 'mein_neuer_text' );
    function mein_neuer_text( $string ) {
      $neuer_text = 'Hier ist ';
      $string = $neuer_text . $string;
      
      return $string;
    }

    die Zeichenkette in „Hier ist ursprünglicher Text“ geändert. Wenn du den ursprünglichen Text nicht verwenden möchtest, brauchst du auch keine Werte übergeben. Dann reicht

    add_filter( 'name_des_filters', 'mein_neuer_text' );
    function mein_neuer_text() {
      $neuer_text = 'Ganz anderer Text';
      
      return $neuer_text;
    }
Ansicht von 1 Antwort (von insgesamt 1)