-
投稿者投稿
-
2019年9月15日 8:21 PM #28012
【お使いの Snow Monkey のバージョン】v7.10.5
【お使いのブラウザ】Google Chrome バージョン: 76.0.3809.132(64 ビット)
【当該サイトのURL】https://www.pangoo.jp/visit===
上記でコードを見つけて、子テーマのfunction.phpに貼り付け、descriptionの文字数を変更したり、一番下のfavicon+ドメイン名を削除したりしたのですが、表示させてみると、aタグにリンク先のURLが入っていないことに気が付きました(クリックしても移動しない)。多分コードが古いのかもしれません。何か良い方法あればお教示ください。
見つけたコード
add_filter(
‘wp_oembed_blog_card_blog_card_template’,
function( $html, $cache ) {
if ( 0 === strpos( $url, home_url() ) ) {
$target = ‘_self’;
} else {
$target = ‘_blank’;
}
$cached_time = isset( $cache[‘cached_time’] ) ? date_i18n( ‘d/m/y H:i:s’, $cache[‘cached_time’] ) : null;
ob_start();
?>
<div class=”wp-oembed-blog-card” data-cached-time=”<?php echo esc_attr( $cached_time ); ?>”>
” target=”<?php echo esc_attr( $target ); ?>”>
<?php if ( $cache[‘thumbnail’] ) : ?>
<div class=”wp-oembed-blog-card__figure”>
” alt=””>
</div>
<?php endif; ?>
<div class=”wp-oembed-blog-card__body”>
<div class=”wp-oembed-blog-card__title”>
<?php echo esc_html( $cache[‘title’] ); ?>
</div>
<div class=”wp-oembed-blog-card__description”>
<?php
if ( function_exists( ‘mb_strimwidth’ ) ) {
echo esc_html( mb_strimwidth( $cache[‘description’], 0, 160, ‘…’, ‘utf-8’ ) );
} else {
echo esc_html( $cache[‘description’] );
}
?>
</div>
<div class=”wp-oembed-blog-card__domain”>
<?php if ( $cache[‘favicon’] ) : ?>
” alt=””>
<?php endif; ?>
<?php echo esc_html( $cache[‘domain’] ); ?>
</div>
</div>
</div>
<?php
return ob_get_clean();
},
100,
2
);変更後のコード
add_filter(
‘wp_oembed_blog_card_blog_card_template’,
function( $html, $cache ) {
if ( 0 === strpos( $url, home_url() ) ) {
$target = ‘_self’;
} else {
$target = ‘_blank’;
}
$cached_time = isset( $cache[‘cached_time’] ) ? date_i18n( ‘d/m/y H:i:s’, $cache[‘cached_time’] ) : null;
ob_start();
?>
<div class=”wp-oembed-blog-card” data-cached-time=”<?php echo esc_attr( $cached_time ); ?>”>
” target=”<?php echo esc_attr( $target ); ?>”>
<?php if ( $cache[‘thumbnail’] ) : ?>
<div class=”wp-oembed-blog-card__figure”>
” alt=””>
</div>
<?php endif; ?>
<div class=”wp-oembed-blog-card__body”>
<div class=”wp-oembed-blog-card__title”>
<?php echo esc_html( $cache[‘title’] ); ?>
</div>
<div class=”wp-oembed-blog-card__description”>
<?php
if ( function_exists( ‘mb_strimwidth’ ) ) {
echo esc_html( mb_strimwidth( $cache[‘description’], 0, 240, ‘…’, ‘utf-8’ ) );
} else {
echo esc_html( $cache[‘description’] );
}
?>
</div>
</div>
</div>
<?php
return ob_get_clean();
},
100,
2
);♥ 0いいねをした人: 居ません2019年9月16日 4:47 PM #28094該当の記事を書いたケミです。
wp_oembed_blog_card_blog_card_template
のフック、書き方が違っていたのをそのまま修正せずに記事に出していたようで…すみません。
urlを取得するなどが必要なので、このように書き直してみてください。add_filter( 'wp_oembed_blog_card_blog_card_template', function( $html, $cache ) { $url = null; preg_match_all( '/<a href=\"(.*?)\".*?>/mis', $html, $matches ); if ( is_array( $matches ) && count( $matches ) >= 1 ) { $url = $matched[1]; } if ( 0 === strpos( $url, home_url() ) ) { $target = '_self'; } else { $target = '_blank'; } $cached_time = isset( $cache['cached_time'] ) ? date_i18n( 'd/m/y H:i:s', $cache['cached_time'] ) : null; ob_start();
記事も修正しておきます。
@キタジマさん
もしよければ、このフックにurlを足していただくと、めっちゃ助かるんですが…(汗♥ 0いいねをした人: 居ません2019年9月16日 10:50 PM #28104タイポがあったので、うまく動作しないままでした。
すみません、再度修正して載せておきます。add_filter( 'wp_oembed_blog_card_blog_card_template', function( $html, $cache ) { $url = ''; preg_match( '/<a href=\"(.*?)\".*?>/mis', $html, $matches ); if ( is_array( $matches ) && 1 <= count( $matches ) ) { $url = $matches[1]; } ...略...
これで正常動作するはずです。
♥ 0いいねをした人: 居ません2019年9月17日 3:49 AM #28116ありがとうございました。解決しました!
♥ 0いいねをした人: 居ません -
投稿者投稿
- トピック「ブログカードのカスタマイズについて」には新しい返信をつけることはできません。