رفتن به مطلب

حل یک مشکل در کد opengraph


پست های پیشنهاد شده

سلام

من با استفاده از کد زیر در فایل functions.php متاهای opengraph را به مطالب سایت اضافه میکنم.


<?php
//Adding the Open Graph in the Language Attributes
function add_opengraph_doctype( $output ) {
return $output . ' xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"';
}
add_filter('language_attributes', 'add_opengraph_doctype');
//Lets add Open Graph Meta Info
function insert_fb_in_head() {
global $post;
if ( !is_singular()) //if it is not a post or a page
return;
echo '<meta property="og:title" content="' . get_the_title() . '"/>';
echo '<meta property="og:type" content="article"/>';
echo '<meta property="og:url" content="' . get_permalink() . '"/>';
echo '<meta property="og:site_name" content="Site Name"/>';
if(!has_post_thumbnail( $post->ID )) { //the post does not have featured image, use a default image
$default_image="image url"; //replace this with a default image on your server or an image in your media library
echo '<meta property="og:image" content="' . $default_image . '"/>';
}
else{
$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
echo '<meta property="og:image" content="' . esc_attr( $thumbnail_src[0] ) . '"/>';
}
echo "
";
}
add_action( 'wp_head', 'insert_fb_in_head', 5 );
?>

مشکلی که دارم این کد برای تصویر از تصویر شاخص استفاده میکنه ولی مطالب سایت من هیچ کدومش تصویر شاخص ندارن و قالبمم اصلاً از تصویر شاخص پشتیبانی نمیکنه.

میخوام بجای تصویر شاخص اولین عکس موجود در پست رو بعنوان متای og:image قرار بده.

کسی میتونه کد رو برام دستکاری کنه ؟

لینک به ارسال

شما در پوسته تون این کد رو دارید؟ تصویر شاخص اولین عکس موجود در پست

لینک به ارسال

شما در پوسته تون این کد رو دارید؟ تصویر شاخص اولین عکس موجود در پست

اگر منظورتون این کده :


function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;
}

امتحان کردم اما نشد.

لینک به ارسال

echo '<meta property="og:image" content="' . $default_image . '"/>';

بشه

$default_image = catch_that_image();
echo '<meta property="og:image" content="' . $default_image . '"/>';

لینک به ارسال


echo '<meta property="og:image" content="' . $default_image . '"/>';

بشه

$default_image = catch_that_image();
echo '<meta property="og:image" content="' . $default_image . '"/>';

صفحه مطالبم بعد از تغییر دیگه لود نمیشه !

امکانش هست کد کل رو تست کنید و بزارید ؟

لینک به ارسال

خط میده یا چیز دیگه؟

کد بالا که مشکلی نداره

نه خطا نمیده فقط صفحه سفید میشه و چیزی لود نمیشه و فقط برای صفحه پستها هم اینجوری میشه .

لینک به ارسال

خوب صفحه سفید یعنی خطا

فایل error_log رو باز کنید (در روت) بعد چند خط آخر رو بزاید اینجا

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...