うたたね

とあるフリーランスのねごと

WordPressでプラグインを使わずにTwitterカードを設定する簡単な方法

f:id:utataneclub:20190831034452p:plain

WordPressプラグイン「All in one SEO」を使って「Twitterカード」の設定をしていましたが、なんだかWordPressの読み込みが重くなった気がしたので利用をやめました。

検索すると「重くなった!」という体験談がちらほら見つかるので同じような現象で悩んでいる方もいるのかもしれません…

Twitterカードとは:
Twitterにシェアしたときに表示される画像とリンクのこと


とはいえTwitterカードの設定は記事別に行いたい!

ということで今回はWordPressプラグインを使わずに記事別Twitterカードの設定をする方法」をお届けします。

やりかた

  1. 管理画面で「テーマエディター」を開く
  2. 「function.php」にコードを記入する

コード

/*********************
OGPタグ/Twitterカード設定を出力
*********************/
function my_meta_ogp() {
  if( is_front_page() || is_home() || is_singular() ){
    global $post;
    $ogp_title = '';
    $ogp_descr = '';
    $ogp_url = '';
    $ogp_img = '';
    $insert = '';

    if( is_singular() ) { //記事&固定ページ
       setup_postdata($post);
       $ogp_title = $post->post_title;
       $ogp_descr = mb_substr(get_the_excerpt(), 0, 100);
       $ogp_url = get_permalink();
       wp_reset_postdata();
    } elseif ( is_front_page() || is_home() ) { //トップページ
       $ogp_title = get_bloginfo('name');
       $ogp_descr = get_bloginfo('description');
       $ogp_url = home_url();
    }

    //og:type
    $ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article';

    //og:image
    if ( is_singular() && has_post_thumbnail() ) {
       $ps_thumb = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full');
       $ogp_img = $ps_thumb[0];
    } else {
     $ogp_img = '【アイキャッチが未設定の場合の画像】';
    }

    //出力するOGPタグをまとめる
    $insert .= '<meta property="og:title" content="'.esc_attr($ogp_title).'" />' . "\n";
    $insert .= '<meta property="og:description" content="'.esc_attr($ogp_descr).'" />' . "\n";
    $insert .= '<meta property="og:type" content="'.$ogp_type.'" />' . "\n";
    $insert .= '<meta property="og:url" content="'.esc_url($ogp_url).'" />' . "\n";
    $insert .= '<meta property="og:image" content="'.esc_url($ogp_img).'" />' . "\n";
    $insert .= '<meta property="og:site_name" content="'.esc_attr(get_bloginfo('name')).'" />' . "\n";
    $insert .= '<meta name="twitter:card" content="summary_large_image" />' . "\n";
    $insert .= '<meta name="twitter:site" content="@pursuem_yms" />' . "\n";
    $insert .= '<meta property="og:locale" content="ja_JP" />' . "\n";

    echo $insert;
  }
} //END my_meta_ogp

add_action('wp_head','my_meta_ogp');//headにOGPを出力

注意

  • function.phpはバックアップをとっておく
  • 記述を間違えたり、空白が入ってしまったりするとサイトが表示されず真っ白になる可能性がある
    • 真っ白になってしまった場合は焦らずバックアップで上書きすればOK

あわせて読みたい



● 読者登録・フォローお待ちしております