0

WordPress の製品ギャラリーに fancybox を追加しています。サムネイル リンクの隠し div と href の ID 名として製品タイトルを使用しています。製品タイトルにはスペースが含まれており、ファンシーボックスが壊れています.

私がオンラインで見つけた解決策は、html 要素間の空白のみを参照しており、そこから解決策を導き出すには私の javascript/regex の知識が十分ではありません。

製品のサムネイルと画像を生成するために使用するコードは次のとおりです。

<div class="entry-post-thumbnail">
            <a class="size-<?php echo $image_size;?> fancybox" href="#image-<?php the_title(); ?>"><?php the_post_thumbnail($image_size); ?></a>
            <div id="image-<?php the_title(); ?>" style="display: none;">
                <?php the_post_thumbnail($post->ID,'full'); ?>
            </div>
</div><!-- .entry-post-thumbnail -->

出力されたコードは次のとおりです。

<a class="size-product fancybox" href="#image-Product three">
    <img src="[###]/wp-content/uploads/2013/06/product-thumbnail.png" class="attachment-product wp-post-image" alt="Product thumbnail" height="222" width="166"></a>
<div id="image-Product three" style="display: none;">
    <img src="[###]/wp-content/uploads/2013/06/product-thumbnail.png" class="attachment- wp-post-image" alt="Product thumbnail" full="" height="222" width="166">               
    </div>

どんな助けでも大歓迎です!

4

1 に答える 1

1

use preg_replace

<div id="image-<?php preg_replace('/(\s/', '', the_title()); ?>" style="display: none;">

A better regex would be [^A-Za-z0-9\-_:.]. This matches all invalid characters for an html ID according to What are valid values for the id attribute in HTML?.

于 2013-06-26T02:15:46.467 に答える