web-dev-qa-db-ja.com

K2および複製されたOpen Graphタグ

私は、Joomla 2.5とK2 2.6.9を使ったこのサイトを持っています。はい、更新する必要があることはわかっていますが、この「安い」クライアントに伝えてください。それにもかかわらず、それは完璧に動作し、クライアントは何年もの間それで満足しています。

しかし、(少なくとも1つの「しかし」は常にありますよね?)FacebookでのK2アイテムの共有に問題があります!共有するアイテムのタイトルが間違っている場合や、共有するアイテムのメイン画像が表示されない場合があります。そのサイトではソーシャル共有プラグインを使用していませんが、SEF URL用のsh404SEFがあり、ソーシャル機能が有効になっています。ソーシャル共有は、K2アイテムを除く他のすべてのページで正常に機能します。そのため、K2がこれらの問題を引き起こすと確信しています。 K2カテゴリのオプションでは、K2のソーシャル機能をすべて無効にするようにしましたが、Open Graph DebuggerでK2アイテムの共有を確認すると、重複するOGタグが明確に表示されています。

K2のOpen Graphタグを無効にするにはどうすればよいですか?

2
Mikan

最近、似たような問題が発生しました。それを修正するには、k2コアファイルの1つをハックする必要があります。

//Go to(windows style path) joomla root/components/com_k2/views/item/view.html.php  
// and comment line from 445 to 455
/*
$document->setMetaData('og:url', $uri->toString());
        $document->setMetaData('og:title', htmlspecialchars($document->getTitle(), ENT_QUOTES, 'UTF-8'));
        $document->setMetaData('og:type', 'Article');
        $facebookImage = 'image'.$params->get('facebookImage', 'Small');
        if ($item->$facebookImage && JFile::exists(JPATH_SITE.$item->$facebookImage))
        {
            $image = substr(JURI::root(), 0, -1).str_replace(JURI::root(true), '', $item->$facebookImage);
            $document->setMetaData('og:image', $image);
            $document->setMetaData('image', $image);
        }
        $document->setMetaData('og:description', htmlspecialchars(strip_tags($document->getDescription()), ENT_QUOTES, 'UTF-8'));
*/

For joomla root/components/com_k2/views/latest​/view.html.php

comment line from line 256 - 261
// Set Facebook meta data
/*
        $document = JFactory::getDocument();
        $uri = JURI::getInstance();
        $document->setMetaData('og:url', $uri->toString());
        $document->setMetaData('og:title', (K2_JVERSION == '15') ? htmlspecialchars($document->getTitle(), ENT_QUOTES, 'UTF-8') : $document->getTitle());
        $document->setMetaData('og:type', 'website');
        $document->setMetaData('og:description', strip_tags($document->getDescription()));
*/

For joomla root/components/com_k2/views/itemlist/view.html.php  line 690 to 701

// Set Facebook meta data
/*
    $document = JFactory::getDocument();
        $uri = JURI::getInstance();
        $document->setMetaData('og:url', $uri->toString());
        $document->setMetaData('og:title', (K2_JVERSION == '15') ? htmlspecialchars($document->getTitle(), ENT_QUOTES, 'UTF-8') : $document->getTitle());
        $document->setMetaData('og:type', 'website');
        if ($task == 'category' && $this->category->image && strpos($this->category->image, 'placeholder/category.png') === false)
        {
            $image = substr(JURI::root(), 0, -1).str_replace(JURI::root(true), '', $this->category->image);
            $document->setMetaData('og:image', $image);
            $document->setMetaData('image', $image);
        }
        $document->setMetaData('og:description', strip_tags($document->getDescription()));

*/

私はこのソリューションをJoomlaWorksフォーラムで見つけました K2がOGタグを生成しないようにする とソリューションがリストするリンク Com_k2デフォルトのオープングラフの修正

ほとんど同じである3番目のオプションがあります- k2-and-setting-the-wrong-open-graph-description-meta-tag

それが役に立てば幸い。

3
user7746