Wie kann ich aus diesem Code einen Shortcode erstellen?

Ich habe den unten stehenden Code verwendet, um Elemente in einem Verzeichnis zu zählen und dann mithilfe eines Plugins zu einer WordPress-Seite hinzuzufügen.

$dir = '/PATH TO DIRECTORY/'; $filecount = 0; $d = dir($dir); while ($f = $d->read()) { if(($f!= ".") && ($f!= "..")) { if(!is_dir($f)) $filecount++; } } echo '(',$filecount,')'; 

Ich frage mich, ob ich einen Shortcode daraus machen kann

 function item_count() { 

Und fügte es hinzu:

 } add_shortcode('count', 'item_count'); 

Aber das Echo triggers einen Fehler aus, dass die Header bereits gesendet wurden.

Seitdem habe ich gelernt, dass Shortcodes eher “zurückkommen” als “Echo” sein sollten, aber ich konnte nicht herausfinden, was ich tun muss, um dies als Shortcode zu verwenden.

Solutions Collecting From Web of "Wie kann ich aus diesem Code einen Shortcode erstellen?"

Es sollte so einfach sein:

 function item_count() { $dir = '/PATH TO DIRECTORY/'; $filecount = 0; $d = dir( $dir ); while ( $f = $d->read() ) { if ( ( $f!= "." ) && ( $f!= ".." ) ) { if( ! is_dir( $f ) ) { $filecount++; } } } return '(' . $filecount . ')'; } add_shortcode( 'count', 'item_count' ); 

Wenn Sie immer noch den Header “Headers Sently Sent” erhalten, stellen Sie sicher, dass am Ende der PHP-Datei kein Leerzeichen mehr vorhanden ist. (Sie können das schließende ?> -Tag sicher weglassen, wodurch Sie sicherstellen können, dass kein überflüssiger Leerraum vorhanden ist.)

Weitere Informationen zum Auslassen des schließenden PHP-Tags finden Sie in dieser Antwort .