前提・実現したいこと
現在Wordpressにて構築しているサイトにOGPタグの設定を行いたいです。
Facebookのみog:imageが取得できないエラーが発生しており原因が全くわからない状況となります。(Twitterは正常に取得できています)
お分かりになる方がいれば解決方法についてアドバイスいただけますと幸いです。
現在わかっている範囲ですと同様の不具合の相談がteratail上にありました。
https://teratail.com/questions/49004
こちらの回答では
IP制限とパスワード設定が原因でした、解決しました!
と記載あるのですが、このIP制限とパスワード設定というのは何を指しているのかが分かりませんでした。
発生している問題・エラーメッセージ
Facebookの提供するシェアデバッカーでは以下のエラーが表示されています。
デバッカーではurlやtypeなどそのほかの項目は全て取得できており、og:imageだけ取得できていない状態となっております。
推測されるプロパティ : 値が他のタグから推測される場合でも、og:imageプロパティは明示的に指定してください。 プロパティがありません :次のプロパティは必須です: og:url, og:type, og:title, og:image, og:description, fb:app_id
該当のソースコード
こちらをfunction.phpに記述しています。
PHP
1/********************* 2OGPタグ/Twitterカード設定を出力 3*********************/ 4function my_meta_ogp() { 5 if( is_front_page() || is_home() || is_singular() ){ 6 global $post; 7 $ogp_title = ''; 8 $ogp_descr = ''; 9 $ogp_url = ''; 10 $ogp_img = ''; 11 $insert = ''; 12 13 if( is_singular() ) { //記事&固定ページ 14 setup_postdata($post); 15 $ogp_title = $post->post_title; 16 $ogp_descr = mb_substr(get_the_excerpt(), 0, 100); 17 $ogp_url = get_permalink(); 18 wp_reset_postdata(); 19 } elseif ( is_front_page() || is_home() ) { //トップページ 20 $ogp_title = get_bloginfo('name'); 21 $ogp_descr = get_bloginfo('description'); 22 $ogp_url = home_url(); 23 } 24 25 //og:type 26 $ogp_type = ( is_front_page() || is_home() ) ? 'website' : 'article'; 27 28 //og:image 29 if ( is_singular() && has_post_thumbnail() ) { 30 $ps_thumb = wp_get_attachment_image_src( get_post_thumbnail_id(), 'full'); 31 $ogp_img = $ps_thumb[0]; 32 } else { 33 $ogp_img = 'TOPページ&アイキャッチ画像がないときに使われる画像のURLを絶対パスで入力し、ブラウザーからは閲覧できています。'; 34 } 35 36 //出力するOGPタグをまとめる 37 $insert .= '<meta property="og:title" content="'.esc_attr($ogp_title).'" />' . "\n"; 38 $insert .= '<meta property="og:description" content="'.esc_attr($ogp_descr).'" />' . "\n"; 39 $insert .= '<meta property="og:type" content="'.$ogp_type.'" />' . "\n"; 40 $insert .= '<meta property="og:url" content="'.esc_url($ogp_url).'" />' . "\n"; 41 $insert .= '<meta property="og:image" content="'.esc_url($ogp_img).'" />' . "\n"; 42 $insert .= '<meta property="og:site_name" content="'.esc_attr(get_bloginfo('name')).'" />' . "\n"; 43 $insert .= '<meta name="twitter:card" content="summary_large_image" />' . "\n"; 44 $insert .= '<meta name="twitter:site" content="ツイッターのアカウント名を入力しています" />' . "\n"; 45 $insert .= '<meta property="og:locale" content="ja_JP" />' . "\n"; 46 47 //facebookのapp_id(設定する場合) 48 $insert .= '<meta property="fb:app_id" content="ここにappIDを入力しています">' . "\n"; 49 //app_idを設定しない場合ここまで消す 50 51 echo $insert; 52 } 53} //END my_meta_ogp 54 55add_action('wp_head','my_meta_ogp');//headにOGPを出力
試したこと
htaccessの確認
robot.txtの確認
あなたの回答
tips
プレビュー