get_posts()
関数を使用してカスタムクエリを使用して、meta_key wpcf-legislacion-gratis
を持つ投稿に関連付けられた添付ファイル(投稿ごとに1つだけ)を取得する必要があります(列の値に関係なく)。私はこれを二つの方法で試しました:
$nonActivePlan_args = array(
'order' => 'desc',
'meta_query' => array(
array(
'key' => 'wpcf-legislacion-gratis',
'value' => NULL,
'compare' => '!='
)
),
'post_status' => 'inherit',
'posts_per_page' => 1,
'post_type' => 'attachment',
'post_parent' => get_the_ID(),
);
$nonActivePlanAttachment = get_posts( $nonActivePlan_args );
if ($nonActivePlanAttachment) {
foreach ($nonActivePlanAttachment as $attachment) { ?>
<div class="legislacion-ico">
<a class="pdf" href="<?php echo wp_get_attachment_url( $attachment->ID, true ); ?>">
<img src="<?php echo get_template_directory_uri(); ?>/images/ico_descargas.png">
<br>
Descargar PDF
</a>
</div>
<?php
}
}
wp_reset_postdata();
上記のものに関連して、私はこの疑問を持っています:
wpcf-legislacion-gratis
に等しいmeta_keyを持つ添付ファイルを見つけるためのクエリをどのように作成すればよいですか。wpcf-legislacion-gratis
しかないので、結果をループする必要がありますか?一つだけじゃないの?wp_reset_postdata()
を実行する必要がありますか?私もこのコードを試してみました:
$nonActivePlan_args = array(
'order' => 'desc',
'meta_key' => 'wpcf-legislacion-gratis',
'post_status' => 'inherit',
'posts_per_page' => 1,
'post_type' => 'attachment',
'post_parent' => get_the_ID(),
);
しかし、DBから何の価値も得られないという意味では機能していません。これはMySQLコマンドラインで実行したクエリの結果です。
SELECT * FROM `wp_postmeta` where post_id='11839';
+---------+---------+-------------------------+-----------------------------------------------------------------------------------+
| meta_id | post_id | meta_key | meta_value |
+---------+---------+-------------------------+-----------------------------------------------------------------------------------+
| 22149 | 11839 | wpcf-legislacion-gratis | http://jurisprudencia.dev/wp-content/uploads/2015/02/modelodatos.pdf |
| 22150 | 11839 | wpcf-legislacion-pagada | http://jurisprudencia.dev/wp-content/uploads/2015/02/AtencionUsuario_version1.pdf |
+---------+---------+-------------------------+-----------------------------------------------------------------------------------+
私はまたドキュメント をここ と ここ でチェックしましたが、何も見つかりませんでした私には役に立ちました。
添付ファイルを入手するにはどうすればよいですか。何か手助けやアドバイスは?
私はあなたが後にいるのはget_post_meta()
であり、カスタムクエリではないと思います。
カスタムフィールドからの結果はキャッシュされ、パフォーマンスが向上すると非常に合理化されます。あなたは この答えを読むことができます 私は最近すべてを説明します
1つの投稿ページでのみカスタムフィールドを投稿に添付しようとしています。これがget_post_meta()
のために設計されたものです
すべてのコードを次のようなコードで置き換えることができます。(codexから変更された)
$key_1_value = get_post_meta( get_the_ID(), 'wpcf-legislacion-gratis', true );
// check if the custom field has a value
if( ! empty( $key_1_value ) ) {
echo $key_1_value;
}
サイドバーや関数のようにループの外側でカスタムフィールド値を取得する必要がある場合は、get_the_ID()
をget_queried_object_id()
に置き換える必要があります。
$key_1_value = get_post_meta( get_queried_object_id(), 'wpcf-legislacion-gratis', true );
// check if the custom field has a value
if( ! empty( $key_1_value ) ) {
echo $key_1_value;
}