• 解決済 mitsu666

    (@mitsu666)


    お世話になっております。

    カスタム投稿タイプ
    ———————-
    投稿タイプaaa
    投稿タイプbbb
    ———————-
    があるとします。
    それをふまえ、
    投稿タイプaaaのカスタムフィールドの値、aaa_field(文字列)が
    投稿タイプbbbの記事タイトルと等しかった場合に
    投稿タイプbbbの該当記事へリンクさせたいと考えています。

    <?php
    	$title = the_field('aaa_field');
    
    	//投稿が既にあるか判定し、あればIDを取得
    	global $wpdb;
    	$posts = $wpdb->get_results(
    		"SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'bbb' AND post_title = '$title'"
    	);
    	if(!empty($posts)){
    		$id = $posts[0]->ID;
    	}
     ?>
    
     <a href="<?php echo get_permalink( $id ); ?>"><?php the_field('aaa_field'); ?></a>

    そこで以上の記述をarchive-aaa.phpへ記述したところ、
    結果、
    リンクはされるのですが
    投稿タイプaaaの記事へリンクされてしまいました。
    (<?php the_permalink(); ?>とした場合とおなじ結果でございます。。)
    投稿タイプbbbの記事へリンクさせるには、
    どのようにすればよろしいでしょうか。
    ご教授ください。
    何卒よろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • パーマリンクの値が違うのですね。

    環境がないので推測になりますが、
    $posts = $wpdb->get_results(
    の戻り値は取れているでしょうか?
    var_dump($posts);などの出力はどうなりますか?

    ifの中に入っていないのかなと思います。

    if(!empty($posts)){
       $id = $posts[0]->ID;
    }
    トピック投稿者 mitsu666

    (@mitsu666)

    yousanさま

    ご返信ありがとうございます。

    >の戻り値は取れているでしょうか?
    あらためて見た所、どうやら取れていないようです。
    なぜに。。

    >var_dump($posts);などの出力はどうなりますか?

    
    <?php
    $title = the_field('school_responsible');
    global $wpdb;
    $posts = $wpdb->get_results(
    	"SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'bbb' AND post_title = '$title'"
    );
    var_dump($posts);
    ?>
    

    としたところ、

    array(0) { }
    となりました。
    これは、配列がからっぽということでございますよね??
    むむむ。。

    Advanced custom fieldsをお使いでしょうか。

    $title = the_field('school_responsible');

    https://www.advancedcustomfields.com/resources/the_field/

    the_field()ではなく、get_field()を使ってみてはいかがでしょう。

    • この返信は8年、 2ヶ月前にx743が編集しました。
    トピック投稿者 mitsu666

    (@mitsu666)

    x743さま

    ご返信をありがとうございます。
    レスが遅くなり申し訳ございません。

    >Advanced custom fieldsをお使いでしょうか。
    使っております!

    >the_field()ではなく、get_field()を使ってみてはいかがでしょう。
    get_fieldにしましたら、取れました!
    ここがネックだったとは。。
    ご教授ありがとうございます!

    >x743さま
    >yousanさま
    おかげさまで解決できました。
    ありがとうございます!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタムフィールドの値から他の投稿タイプの記事へリンクさせたい」には新たに返信することはできません。