web-dev-qa-db-ja.com

ACFリレーションシップのカスタムフィールドを特定のカスタム投稿へのリンクとして表示する方法

OK。私はこのACFチュートリアルを読んでいますが、これには触れていません。

私は2種類の投稿タイプがあります: リスト 連絡先

すべてのリストは何らかの連絡先に関連付けられている必要があり、私は Relationship カスタムフィールドタイプ(list_supplier)を使用します。

連絡先の役職としてリストテンプレートにリンクを表示する にするだけです。

プラグイン
http://wordpress.org/plugins/advanced-custom-fields/

更新:

OK。私はこれを解決することに近いですが、私はフィルタに関していくつかの問題を抱えています。

これが私のテンプレートで使用しているコードです。

 <?php $contacts = get_field('list_supplier'); ?>
                    <?php if( $contacts ): ?>
                        <?php foreach( $contacts as $contact ): ?>
                            <a href="<?php echo get_permalink( $contact->ID ); ?>" target="blank"><?php echo get_the_title( $contact->ID ); ?></a>
                        <?php endforeach; ?>
                    <?php endif; ?>

一瞬でフロントエンドで動作させることができますが、フィルタには問題がありました。 I これらのフィルターのいくつかを追加します をfunctions.phpに追加すると、カスタムフィールド list_supplier の選択肢は消えます。私がfilter list_supplier を削除するとそこにありますが、それらはフロントエンドに表示されていません。

問題がフィルタにあることを私は知っていますが、私はそれを書く方法を知りません。

2
pendjer

最後に、私はこれを機能させます。

これを自分のテンプレートに入れます。

<?php $contacts = get_field('list_supplier'); ?>
<?php if( $contacts ): ?>
    <?php foreach( $contacts as $contact ): ?>
        <a href="<?php echo get_permalink( $contact->ID ); ?>" target="blank"><?php echo get_the_title( $contact->ID ); ?></a>
    <?php endforeach; ?>
<?php endif; ?>

そして、これが私が使っているフィルタです。

<?php
function my_acf_load_field( $field )
{
    $field['choices'] = array(
        'custom' => 'My Custom Choice'
    );
    return $field;
}

// acf/load_field/key={$field_key} - filter for a specific field based on it's name
add_filter('acf/load_field/key=field_525c37d91ae8d', 'my_acf_load_field');
?>
1
pendjer