Wie teilt man Text Text in Array auf?

Ich mag es, in einem Shortcode auszugeben und zu stylen, aber der Inhalt, der erhalten wird, ist der Inhalt einer Seite, also ist es Stil so

2012-12-12

2012-6-23

2012-7-3

Ich möchte in der Lage sein, NUR das Valutadatum in einem Array zu haben, um es dann in einer ungeordneten Liste ausgeben zu können

Wie mache ich das (strip das p und bekomme es in ein Array?

etwas Code:

 //Add a SHORTCODE to get date listing add_shortcode ('getdate','get_date_listing'); function get_date_listing ($att) { $req_id = 901; $post = get_page($req_id); $content = apply_filters('the_content', $post->post_content); $contentarray = explode( '\n', $content ); echo ($contentarray[0]); //var_dump ($contentarray); //return $content; } 

Solutions Collecting From Web of "Wie teilt man Text Text in Array auf?"

Zunächst müssen Sie die wp_autop entfernen, die vom wp_autop Filter hinzugefügt wurden. Es gibt eine andere Antwort, die das ziemlich gut abdeckt: Gibt es eine uw-wp_autop-function?

Ich werde die function ein wenig für unsere Zwecke ändern (basierend auf dem von Ihnen angegebenen Markup-Beispiel):

 function reverse_wpautop( $s ) { // Strip newlines $s = str_replace( "\n", "", $s ); // Strip all 

tags $s = str_replace( "

", "", $s ); // Replace

with a known delimiter $s = str_replace( "", "::|::", $s ); return $s; }

Wenn alles korrekt funktioniert, sollte dies Ihr Markup konvertieren von:

 

2012-12-12

2012-6-23

2012-7-3

Zu:

 2012-12-12::|::2012-6-23::|::2012-7-3::|:: 

Wenn Sie jetzt eine Teilung durchführen, erhalten Sie ein zusätzliches, leeres Element in Ihrem Array. Denken Sie also daran, vor dem Teilen eine Teilzeichenfolge zu verwenden:

 function split_delimited_string( $s ) { // Take a substring, removing the final 5 characters (::|::) $s = substr( $s, 0, -5 ); return explode( "::|::", $s ); } 

Hier ist der letzte Arbeitscode:

  //Add a SHORTCODE to get date listing add_shortcode ('getdate','get_date_listing'); function get_date_listing ($att) { $outputtvar = ''; // set the default timezone to use. Available since PHP 5.1 date_default_timezone_set('America/Montreal'); //ID of the post containing DATE LIST $req_id = 901; $post = get_page($req_id); $content = apply_filters('the_content', $post->post_content); // Strip all 

tags $content = str_replace( "

", "", $content ); // Replace

with a known delimiter $content = str_replace( "", "|", $content ); //Separate de dates $contentarray = explode( '|', $content ); //remove the last empty date unset($contentarray[count($contentarray)-1]); if (qtrans_getLanguage() == 'fr') { setlocale(LC_ALL, 'fr_CA'); $datesetting = "%A, %e %B, %G"; } if (qtrans_getLanguage() == 'en') { setlocale(LC_ALL, 'en_US'); $datesetting = "%A, %B %e, %G";} //prepare the outputt $outputtvar .= '
    '; foreach ($contentarray as $key => $value) { $timestamp = strtotime($value); $localdate = strftime($datesetting,$timestamp); $localdate = utf8_encode($localdate); $outputtvar .= '
  • ' . $localdate . '
  • '; } $outputtvar .= '
'; return $outputtvar ; }