1

カスタム フィールドを有効にするために、Types Wordpress プラグインを使用しています。プラグインを使用すると、管理ページ エディターで画像の順序を並べ替えることができます。カスタムフィールドに複数の画像を表示し、それ自体へのリンクを持ってFancyboxも使用するためのsingle.phpのコードは次のとおりです。

<?php   
    $mykey_values_img = get_post_custom_values('wpcf-image');
    if ($mykey_values_img != null) {
        foreach ( $mykey_values_img as $key => $value ) {
?>  
        <a href="<?php echo $value; ?>" class="fancybox" rel="gallery"><img src="<?php echo $value; ?>" /></a>

<?php
        } //foreach
    } //if
?>

問題:

現在、このコードは MAMP で実行されているローカル コピーで完全に機能します。ただし、iPage でホストされているオンラインに配置すると、画像が乱れます。この不一致の原因はわかりません。上記のphpの代わりにタイプのショートコードを使用して画像を表示すると、それらは順番に表示されますが、Fancyboxを使用するオプションがありません。また、画像の alt タグを挿入する Wordpress から画像を表示するためのより良い方法があるかどうかも疑問に思っていました。

4

2 に答える 2

4

私もこの問題に遭遇したばかりで、あなたの最初の答えは私をより厳密な解決策に導きました.

types_render_field() も使用しましたが、「raw」パラメーターを含めると、文字列操作を回避できます。

$images_raw = types_render_field('image', array('raw'=>'true','separator'=>';'));
$images = explode(';', $images_raw);
foreach ($images as $link) {
     echo '<a href="' . $link . '" class="fancybox" rel="gallery">' . $link . '"></a>"';
}

次に、厄介な場合は、SRC から添付ファイルの ID を取得できます。その ID を使用すると、キャプションなど、その添付ファイルについて必要なすべての情報を取得できます。

于 2013-10-18T20:06:39.187 に答える
0

私はそれを機能させるための回避策を見つけました。理想的ではありませんが、機能します。

Types プラグインには、 というカスタム フィールドを表示するための独自の php 関数が付属していますtypes_render_field。私の画像を順番に表示してくれました。fancybox を機能させるには、文字列をハックする必要がありました。コードは次のとおりです。

$images = ( types_render_field( "image", array( 'size' => 'full', 'alt' => get_the_title(), 'title' => get_the_title() ) ) );
$imgArray = explode(">", $images);

foreach ( $imgArray as $value ) {

    $pos1 = strpos($value, 'src="', 0)+5;
    $pos2 = strpos($value, '" ', $pos1);
    $link = substr($value, $pos1, $pos2 - $pos1);

    echo '<a href="'.$link.'" class="fancybox" rel="gallery">'.$value."></a>";
}
于 2013-06-02T23:33:31.950 に答える