Zeichenzahl NACH Shortcodes
-
Könntet ihr bitte die Zeichenzahl erst NACH der Ausführung enthaltener Shortcodes berechnen. Shortcodes sind ja quasi Standard, wird von vielen Plugins genutzt und können auch reguläre Texte enthalten, die zur Gesamtberechnung hinzugefügt werden sollten.
-
Hallo, Sebastian,
eigentlich sollte das Plugin nur die Shortcode-Tags „löschen“ und nicht den Inhalt zwischen ihnen. Der Code zur Berechnung ist der:
/** * @var string Regex that matches shortcodes, but not content between shortcodes. It is escaping aware. */ $shortcodeRegex = '/(?<!\[)\[[^\[\]]+\](?!\])/i'; /** * @var string Regex that matches the caption shortcode and its content. It is escaping aware. */ $captionShortcodeRegex = '%(?<!\[)\[caption\s.*?\[/caption\](?!\])%i'; // replace <br> tags by new lines (\n) $post_content = preg_replace( '%<br\s*/?>%si', "\n", $post_content ); // remove all HTML tags, but not the content between the tags; $post_content = strip_tags( $post_content ); // remove whitespaces from the beginning and end $post_content = trim( $post_content ); // remove shortcodes and whitespaces sequences $post_content = preg_replace( array( WPVGW_Helper::$captionShortcodeRegex, // remove caption shortcodes and its content WPVGW_Helper::$shortcodeRegex, // remove shortcodes, but not content between shortcodes; it is escaping aware '/\s{2,}/i' // remove sequences of 2 or more whitespaces ), array( '', '', ' ' ), $post_content ); // convert html entities (e. g. & to &) $post_content = html_entity_decode( $post_content ); // return the number of characters of the cleaned post content return ( mb_strlen( $post_title ) + mb_strlen( $post_content ) );Könntest Du mir bitte ein Beispiel von Dir schicken, bei dem es nicht korrekt funktioniert? Gerne auch an developer<AT-ZEICHEN-EINFÜGEN>prosodia.de
Schöne Grüße
RonnyDanke für die Rückmeldung! Sooo fit bin ich leider nicht bei diesen Platzhalter-Geschichten. Im Grunde genommen ist es ein simpler Shortcode:
[app beschreibung=”xyz”]
Die Ausgabe der “beschreibung” befindest sich in einer Tabelle.
In Ordnung. Jetzt verstehe ich. Genau das hatte ich mir bei der Implementierung der Zählfunktion auch gefragt – ich weiß nicht mehr, warum ich es verworfen habe :-/ Ich prüfe das nun nochmals. Möglicherweise wird es eine Option geben, die
do_shortcodes()auf den post content ausführen wird, bevor gezählt wird. Ich melde mich wieder …Sebastian, weißt Du, ob die entsprechenden Shortcodes im Admin-Bereich verfügbar sind? Viele Plugins und Themes fügen ihre Shortcode-Funktionalität (add_shortcode()) nur im Frontend hinzu, sodass sie im Admin-Bereich nicht verfügbar sind – also insb. auch nicht für unser Plugin. Du kannst mir gern auch das Plugin/Theme nennen, dass die Shortcodes bereitstellt, die Du verwendest – dann schaue ich selbst nach.
Ich weiß zwar nicht genau, was Du mit “im Admin-Bereich verfügbar” meinst, und ich habe auch die Erläuterung nicht ganz verstanden, aber mein Plugin ist das seit Jahren populäre Shortcode Exec PHP: https://wordpress.org/plugins/shortcode-exec-php/
Okay, sieht so aus, als sei es möglich, dass diese Shortcodes auch im Admin-Bereich verwendet werden können. Ich denke, ich werde eine Option einfügen, die das Auswerten der Shortcodes für die Berechnung der Zeichenanzahl erlaubt. Ich melde mich wieder …
Großartig, danke!
Ich habe jetzt eine entsprechende Option in Version 3.3.0 implementiert: „Prosodia VGW OS“ → „Einstellungen“ → „Zeichenanzahl“ → „Shortcodes bei Berechnung der Zeichenanzahl auswerten“.
Perfekt. Funktioniert. Herzlichen Dank!
Gerne 🙂
The topic ‘Zeichenzahl NACH Shortcodes’ is closed to new replies.