• 解決済モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)


    表題のとおりですが、Smart Custom Fieldsプラグインを有効化していると、プレビュー画面でアイキャッチ画像が表示されない現象が発生しています。
    最初は自作テーマで発生しましたが、Twenty Fifteenでも同様の問題が再現されました。

    以下、検証結果です。

    Twenty Fifteenテーマ
    WordPress4.1.1
    Smart Custom Fieldsプラグイン1.2.2
    ローカル環境(MAMP)で検証
    Smart Custom Fields以外に有効化しているプラグイン→WP Multibyte Patch

    Smart Custom Fieldsを有効化

    アイキャッチ画像:プレビューに出てこない
    カスタムフィールドの値:プレビューに出てこない

    Smart Custom Fieldsを停止

    アイキャッチ画像:プレビューに出る
    カスタムフィールドの値:プレビューに出てこない(通常の挙動)

    ※どちらも通常の公開ページでは問題ありません。プレビュー画面のみの現象です
    ※カスタムフィールドの出力はSCF::get()を使っています

    問題としては
    ・アイキャッチ画像のプレビューが出来なくなる点
    ・カスタムフィールドの値もプレビューに出てこない(プラグインの説明には、プレビューに対応とあるけれど)

    この2点です。
    何かわかりますでしょうか?

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    その後ちょっとコードが読める人に見てもらったところ、プラグイン側で、プレビュー画面のpost_idを取得するところに不具合があるのでは?ということでした。
    引き続き検証中です。

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    その後、Smart Custom Fieldsプラグインのバージョンによって、プレビューできるできないの状況が違うようなので、過去のパージョンひと通り調べてみました。

    Ver:Smart Custom Fieldsのバージョン
    tmb:アイキャッチ画像がプレビューできるか
    meta:カスタムフィールドの値がプレビューできるか

    Ver|tmb|meta
    1.2.2|×|×
    1.2.1|×|○
    1.2.0|×|○
    1.1.3|×|×
    1.1.2|×|×
    1.1.1|×|×
    1.1.0|×|×
    1.0.3|×|×
    1.0.2|×|○
    1.0.1|×|○
    1.0.0|×|○

    アイキャッチ画像のプレビューができないのは最初のバージョンからみたいです。
    カスタムフィールドの値のプレビューはバージョンによってできたりできなかったりです。

    詳しく検証いただきありがとうございます。1.0.3〜1.1.3までは、プレビュー(リビジョン)時の投稿タイプの取得に不具合があり、プレビューおよびメタデータのリビジョンが正しく行えない不具合がありました。1.2.0で修正したのですが、不手際で1.2.2で同じ不具合を戻してしまいました…。

    現在、開発中のバージョンではプレビューの不具合は対応しています。
    https://github.com/inc2734/smart-custom-fields
    サムネイル表示についてはこれまで試したことがなかったので、こちらについても確認いたします。ちなみに、アイキャッチ画像はどのようなコードで実装されていますでしょうか?

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    アイキャッチ画像はどのようなコードで実装されていますでしょうか?

    ごくごく一般的なthe_post_thumbnailタグと、functions.php側でadd_theme_support( 'post-thumbnails' );です。
    正確に書くと
    <?php the_post_thumbnail('post-thumbnail', array('class' => 'img-rounded')); ?>
    です。
    なお検証用にTwenty Fifteenのテンプレに<?php the_post_thumbnail(); ?>とだけ書き足しても同じ結果になってます。

    検証したところ、アイキャッチ画像は「更新・公開」ボタンを押したときに更新されるのではなく、アイキャッチ画像を設定したときに保存される(本来の投稿IDに保存される)ため、プレビュー時にプレビューの投稿IDを参照してもアイキャッチ画像が取得できない、ということが原因のようでした。

    もう少しテスト予定ですが、1.3.0のベータ版をGitHubにて公開しましたので、ご検証いただければと思います。
    https://github.com/inc2734/smart-custom-fields/releases/tag/1.3.0b

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    Takashi Kitajimaさん

    1.3.0ベータ試してみました!
    そうしたら、また面倒なことに気づいてしまいました。。。

    「新規作成」の場合は、アイキャッチ画像もカスタムフィールドの値も、両方共プレビューに表示されるようになっていました(^^)b

    しかし、既に作成済みの記事の「編集」を行う場合、アイキャッチ画像はプレビューできますが、カスタムフィールドの値はプレビューに出てきませんでした。

    昨日行った検証のときは、すべて作成済みの記事で確認したので、正確な情報ではなかったかもしれません。(その時点では、新規作成時と編集時の挙動の違いを意識していませんでいたので…….)

    新規作成時にプレビューできれば、実運用ではそこまで困らないかもしれませんが、一応気になってしまったのでご報告しておきますm(_ _)m

    > しかし、既に作成済みの記事の「編集」を行う場合、アイキャッチ画像はプレビューできますが、カスタムフィールドの値はプレビューに出てきませんでした。

    うーむ、こちらの環境では下書き記事でも公開記事でもプレビューにちゃんと反映されますね…。ちょっと原因がわかりません…。

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    あー、すみません、こちらの説明不足というか、自分が書いているコードの内容をもっと詳しく書くべきでした。

    こちらで書いているコードでは

    <?php if ( class_exists('SCF') && get_post_meta($post->ID, 'key_name', true ) {
      echo  SCF::get( 'key_name' );
    } ?>

    的な感じで書いていたため、プレビューの段階で値が取れなかったのだと思います。
    条件分岐部分でもプラグイン側の関数を使って
    if ( class_exists('SCF') && SCF::get( 'key_name' ) )

    とすることでプレビューに反映できました。
    冷静に考えてみればそりゃそうだって話なんですが、盲点でした。
    プラグイン側のバグは改修されていることは確認できましたので、トピックとしては解決済みにしたいと思います。

    プラグインの開発、日々応援しています!

    詳しくありがとうございます!近日中に公式ディレクトリに反映します。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「Smart Custom Fieldsプラグイン使用時にアイキャッチ画像のプレビューができな」には新たに返信することはできません。