フォーラム

Please or 登録 to create posts and topics.

Arkhe Toolkitで設定する背景画像・サブタイトルをトップページ(front-page.php)で表示させたい

お世話になります。

カスタム投稿タイプのターム(カテゴリー)アーカイブページの

  • 見出し
  • タームアーカイブページリンク
  • 背景画像
  • サブタイトル

を取得してトップページでスライダーで表現できたらと思っています。

swiperに関する細かいコードは別にテストコードとして

<?php
$the_query =newWP_Term_Query($args);
foreach ($the_query->get_terms() as $term) :
$list_src .='<li><a href="'.get_term_link($term) .'">'. $term->name .'</a></li>';
endforeach; ?>
<!-- END: タームリスト -->
<?php echo'<ul>'. $list_src .'</ul>'; ?>

と記載することで、リンクとタイトルは表示できているのですが、背景画像やサブタイトルに関してうまく取得できません。

どのようにコードを書いて実装したらいいのかご教示お願いできましたら嬉しいです。

※画像に関しては以下のコードが対象となるのだろうとは思うのですが、

<?php
if ( $bgimg_id ) :
Arkhe::get_image( $bgimg_id, array(
'class'=>'p-topArea__img c-filterLayer__img u-obf-cover',
'alt'=>'',
'loading'=> $lazy_type,
'aria-hidden'=>'true',
'decoding'=>'async',
'echo'=>true,
));
endif;
?>
残念ながらまだ紐解けておりません。どうぞよろしくおねがいします。

WP_Term_Query($args)

に関しては色々調べて、画像の取得ができないのではないかと思ってます。

Arkhe Toolkitで設定できる背景画像をサブループで取得、トップページのスライダーなどで表現できる方法があればご教示ください。

普通にメタデータとして保存してますよ!

Arkheでは、画像部分はToolkitが担当しているので、フックで画像取得してセットしてる感じですね。

/**
* タイトル背景画像
*/
add_filter( 'arkhe_ttlbg_img_id', __NAMESPACE__ . '\hook__ttlbg_img_id', 10, 2 );
function hook__ttlbg_img_id( $img_id, $page_id ) {
  if ( is_category() || is_tag() || is_tax() ) {
    $meta_id = get_term_meta( $page_id, 'ark_meta_ttlbg', true );
  } else {
    $meta_id = get_post_meta( $page_id, 'ark_meta_ttlbg', true );
  }
  return $meta_id ?: $img_id;
}
Toshi has reacted to this post.
Toshi

ありがとうございます。まだ試していないのですが、

hook__ttlbg_img_id( $img_id, $page_id )

で取得できるメタ情報を

WP_Term_Query($args)

のサブループで回すという感じでしょうか。

やArkheのマニュアルなどを参考にしながらやってみているのですが、もしよりよい方法やその方法は間違っているなどご教示頂けることがありましたら幸いです

頂いた返信から改めて諸々調べながらやっているのですが、

(例) WordPressでスラッグ名からIDを取得する方法。投稿・固定ページ・カテゴリ・タグ・タクソノミーごとの違いを整理。   等...

Toolkitプラグインで設定されている背景画像の取得方法がわかりません。

すべてを教えていただくのは自分のために良しとしていないのですが、改めてご教示いただけないでしょうか?

やりたいことは

  1. タームアーカイブのタイトル背景画像(Arkhe Toolkit)
  2. タイトル
  3. タームアーカイブのリンク

を取得してfront-page.phpでスライダーとして表現をしたいです。以前こちらに投稿した下記のコードでタームリンクと表題は記述の良し悪しは別にして表示されてはいます。

<?php
$the_query =newWP_Term_Query($args);
foreach ($the_query->get_terms() as $term) :
$list_src .='<li><a href="'.get_term_link($term) .'">'. $term->name .'</a></li>';
endforeach; ?>
<!-- END: タームリスト -->
<?php echo'<ul>'. $list_src .'</ul>'; ?>

お忙しいところ大変恐縮ですが、ご回答をお願いできれば幸いです。よろしくおねがいします

ご教示頂いたようにやってはみるものの理解不足にて画像については一つの画像しか取得できず困っております。
間違ったコードにて恐縮ですが以下に記載させていただきます。改めてご教示いただけましたら幸いです。度々恐れ入りますがよろしくおねがいします。

<!-- START: タームリスト -->


<?php
$term_query = new WP_Term_Query($args_term);
$tax_all = get_terms('achievement_cat');


foreach ($term_query->get_terms() as $tq) :


if (count($tax_all) > 0) :
foreach ($tax_all as $tax) :
$term_img = get_term_meta($tax->term_id, 'ark_meta_ttlbg', true);
$img_url = wp_get_attachment_image_src($term_img, 'full');
if ($img_url) :
?>
<img src="<?php echo $img_url[0] ?>" alt="<?php echo $tax->name; ?>">
<?php
endif;
endforeach;
endif;


$list_src .= '<li><a href="' . get_term_link($tq) . '">' . $tq->name . '</a></li>';
endforeach;
?>
<!-- END: タームリスト -->
<?php echo '<ul>' . $list_src . '</ul>';
var_dump($term_img);
?>

 

WP_Term_Queryとget_terms両方使って両方でループ回すというよくわからない構造になってますね....

var_dump($term_img);もループの外で最後に吐き出してるので、一回しか吐き出されないです。

Toshi has reacted to this post.
Toshi

以下のコードに修正すると動くと思います。

$term_query = new WP_Term_Query( array(
    'taxonomy' => 'achievement_cat',
) );
$list_src = '';
foreach ( $term_query->get_terms() as $term_data ) :
    $img = '';
    $term_img = get_term_meta( $term_data->term_id, 'ark_meta_ttlbg', true );
    if ( $term_img ) {
        $img = Arkhe::get_image( $term_img, array(
            'size' => 'medium',
            'alt' => $term_data->name,
        ) );
    }
    $list_src .= '<li>' . $img . '<a href="' . get_term_link( $term_data ) . '">' . $term_data->name . '</a></li>';
endforeach;
echo '<ul>' . $list_src . '</ul>';

※ wp_get_attachment_image_srcでソース取得してももちろんいいのですが、Arkhe側に画像取得メソッド用意してるのでそれ使ってます。

Toshi has reacted to this post.
Toshi

ご連絡が遅くなりました。

WP_Term_Queryとget_terms両方使って両方でループ回すというよくわからない構造...

本当です。ハマってしまってなかなか抜け出せず…
ご教示ありがとうございました。wemo.techのブログ記事なども拝見しながらまた今後もお伺いすることも多いかと思いますがよろしくおねがいします。