Das ist eigentlich härter als es scheint an der Oberfläche. Andrews Antwort funktioniert, bricht aber zusammen, wenn eckige Klammern im Quelltext erscheinen [wie dies zum Beispiel]. WordPress funktioniert, indem er eine Liste gültiger Shortcodes vorregistriert und nur auf Text in Klammern reagiert, wenn er mit einem dieser vordefinierten Werte übereinstimmt. Auf diese Weise wird kein normaler Text verfehlt, in dem möglicherweise gerade eckige Klammern stehen.
Die tatsächliche source code der WordPress-Shortcode-Engine ist ziemlich robust, und es sieht nicht so aus, als wäre es so schwer zu ändern, die Datei selbst zu laufen - dann könnten Sie das in Ihrer Anwendung verwenden harte Arbeit. (Wenn Sie interessiert sind, werfen Sie einen Blick auf get_shortcode_regex()
in dieser Datei, um zu sehen, wie haarig die richtige Lösung für dieses Problem tatsächlich bekommen kann.)
Eine sehr grobe Umsetzung Ihrer Frage mit der WP shortcodes.php würde aussehen etwas wie:
// Define the shortcode
function inlude_shortcode_func($attrs) {
$data = shortcode_atts(array(
'file' => 'default'
), $attrs);
return "Including File: {$data['file']}";
}
add_shortcode('include', 'inlude_shortcode_func');
// And then run your page content through the filter
echo do_shortcode('This is a document with [include file="header.html"] included!');
Auch hier überhaupt nicht getestet, aber es ist nicht eine sehr harte API zu verwenden.
Bitte versuchen Sie meine Bibliothek, es ist eigenständigen und bereits kampferprobt in der Produktion: https://github.com/thunderer/Shortcode. Wenn du etwas brauchst, lass es mich wissen! –
@TomaszKowalczyk danke!:) – Iamzozo