1

ショートコードの置き換えを開発しようとしていますが、実際にはうまくいきません。私がやりたいことは、ユーザーが [slideshow]10[/slideshow] のようなものを書き、ID 番号 10 のスライドショーが表示されるようにすることです。これは私が来た限りです:

$slideArray = array(preg_match_all('/\[slideshow\](.*?)\[\/slideshow\]/is', $post, $matches));

これで私は:

for ($o = 0; $o <= $count; $o++) 
   { 
   $query = mysql_query("SELECT * FROM slideshow WHERE id = ''. $matches[1][$o]. '' LIMIT 1");
   while ($row = mysql_fetch_assoc($query))
   {
    // Slideshow code appears here
   } 
}

これは機能しますが、スライドショーを投稿の上部に表示するか下部に表示するかを決定する必要があります。しかし、私がそうしたいのであれば、このスライドショーはユーザーが書いた場所に表示されます。したがって、例としてテキストの途中に表示される可能性があります。次に、これの関数を作成し、preg_replace を使用して [slideshow]10[/slideshow] を上記のクエリ コードに置き換えることは可能ですか。下手な英語で申し訳ありません。

よろしくお願いします

4

1 に答える 1

1

「//スライドショーコードはここに表示されます」領域にこのようなものを追加します

$post = str_replace($matches[0][$o], $row['slideshowfield'], $post);

すべてのコードは次のようになります。

preg_match_all('/\[slideshow\](.*?)\[\/slideshow\]/Usi', $post, $matches);

if(!empty($matches[1])){
    foreach($matches[1] as $o => $slideshow_id){
        $query = mysql_query("SELECT * FROM slideshow WHERE id = '". (int)$slideshow_id. "' LIMIT 1");
        if($row = mysql_fetch_array($query)){
            $post = str_replace($matches[0][$o], $row['slideshow_html_fieldname'], $post);
        }
    }
}
于 2012-07-31T12:45:36.350 に答える