Holen Sie den Inhalt in den Shortcode und wenden Sie eine externe function an?

function t_shortcode($atts, $content = null){ $lang = strtolower($atts['lang']); $content = "
".$content."
"; if($lang == $_SESSION['language']): return $content; endif; }

Ich versuche, den Inhalt zwischen den Kurzwahlen zu bekommen, eine function in der index.php anzuwenden und den $ Inhalt des Kurzwahlcodes mit den enthaltenen divs zurückzugeben.

Die zweite function, die ich auf die Shorcode-function anwenden möchte, ist:

 function display($shortcodecontent, $noofchars){ $content2 = mb_substr($shortcodecontent,0,$noofchars); return $content2; } 

so dass ich verwenden kann: // 13 ist die Anzahl der Zeichen

Solutions Collecting From Web of "Holen Sie den Inhalt in den Shortcode und wenden Sie eine externe function an?"

Im Folgenden wird der [my_t_shortcode] , der ein Attribut “lang” akzeptiert und die oben genannte function auf den Inhalt anwendet.

 //Add shortcodes add_shortcode( 'my_t_shortcode', 'wpse41477_shortcode_handler' ); //It's good practise to make sure your functions are prefixed by something unique function wpse41477_shortcode_handler( $atts, $content = null ) { //This will extract 'lang' attribute as $lang. You can supply default values too. extract( shortcode_atts( array( 'lang' => 'default_lang', ), $atts ) ); //The above lowercases all values. /* Apply external function. 'display' is too generic, * give it a unique prefix to prevent a clash with another plugin/theme/WordPress */ $content = wpse41477_display($content,13); //why not do $content = mb_substr($content,0,13); instead? //Apply divs $content = "
".$content."
"; //Not sure what the following is for, but I've left it in. if($lang == $_SESSION['language']): return $content; endif; }

Und die benutzerdefinierte function:

 function wpse41477_display($shortcodecontent, $noofchars){ $content2 = mb_substr($shortcodecontent,0,$noofchars); return $content2; } 

Wenn dies alles wpse41477_display tut, würde ich dringend empfehlen, dass Sie es direkt in den Shortcode-Handler aufnehmen (siehe Kommentare).

Der obige Code wird nicht getestet.