• 解決済 fionn_0602

    (@fionn_0602)


    お世話になります。

    現在、児童文庫のサイト作成を行っており、
    以下のような形で作者様の名前を表示しております。

    カスタムフィールド名  = 著者名
    カスタムフィールドの値 = 作者A,作者B,作者C

    <?php if(post_custom('著者名')): ?>
    <li><dl>
    <dt>著者名: </dt>
    <dd>
    <?php $fieldData = explode("\n",get_post_meta($post->ID,'著者名',true) ); $i = 0;
    foreach ($fieldData as $value){ if ( $value ){ echo $value ;} $i++; } ?>
    </dd>
    </dl></li>
    <?php endif; ?>

    ここから更に作者名から同作者の作品が検索出来ます様、
    各作者名を検索リンク出来ないかとここ数日間頑張っているのですが、
    短編集など複数の作者様がおられます際の
    カスタムフィールドの値が複数の場合に対応した表示がまったく上手くいきません。

    大変申し訳御座いませんが、
    何方様かご助言頂けましたら幸いで御座います。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック投稿者 fionn_0602

    (@fionn_0602)

    試行錯誤しているうちに、
    何とか以下の形でリンクを設置するところまでは出来ました。

    <?php if(post_custom('著者名')): ?>
    <li>著者名: 
    <?php $fieldData = explode(",",get_post_meta($post->ID,'著者名',true) );
          $i = 0;
          foreach ($fieldData as $value)
            { if ( $value )
              {
              echo '<a href="/?s=' . $value . '">' . $value . '</a> ';
              }
            $i++; }
     ?>
    </li>
    <?php endif; ?>

    ただ、本当は区切りを『,』で行いたいものの方法が判らず、
    取り敢えず全角スペースをリンクの後ろに入れる形になっております。
    知識のあられる皆様には基本的な事なのかも知れないとは思いますが、
    どうかご助言頂けませんでしょうか。

    現状は著者名をカンマ区切りで入力していると思いますが、カスタムフィールドは複数登録することが可能なので、今後はそうしたほうが良いのではないかと思います。

    その場合、著者名の配列は

    $fieldData = get_post_meta( $post->ID, '著者名' ); // 第三引数のデフォルトは false

    で取得できます。

    ご質問の内容についてですが、区切り文字としてのカンマが、一番最後にくっついてしまうため全角スペースを使用しているとすると、下記のように rtrim を出力時(前)に施すことで余計なカンマを削除することができます。

    <?php
    if(post_custom('著者名')): ?>
    <li>著者名: 
    <?php
    	$fieldData = explode(",",get_post_meta($post->ID,'著者名',true) );
    	$authors = ''; // 空文字
    	foreach ($fieldData as $value) {
    		if ( $value ) {
    			$authors .= '<a href="/?s=' . $value . '">' . $value . '</a>,';
    		}
    	}
    	echo rtrim( $authors, ',' );
    ?>
    </li>
    <?php
    endif; ?>

    変数 $i は上記のコード内では使用されていないようなので割愛しました。
    検索対象にカスタムフィールドを含めることについては別途対応が必要だと思いますが、文字列については上記でお望みの出力がされるのではないでしょうか。

    トピック投稿者 fionn_0602

    (@fionn_0602)

    mimosafa様、先日に続きまして有難う御座います。
    お陰様で思っていた形で著者名を表示する事が出来ました。
    またカスタムフィールドの記載方法に関しましてのご助言有難う御座います。
    この機会に改めて基礎的な部分から勉強させて頂きたいと思います。
    では今回も大変お世話になりました。
    心より感謝申し上げます。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタムフィールドの値が複数の場合の検索リンクの設置」には新たに返信することはできません。