0

Module.php にいくつかのデフォルトのメタ パラメーターを設定します。

$hm =  $serviceManager->get('ViewHelperManager')->get('headMeta');
$hm
  ->appendProperty('og:image', '/images/opengraph/1.jpg')
  ->appendProperty('og:image', '/images/opengraph/2.png');

後でいくつかのアクションで、これらのメタ パラメータをオーバーライドし、他のイメージを設定する必要があります。これらの既存の「og:image」パラメーターをクリアする方法がわかりません...試しました:

$hm->appendProperty('og:image', null);
//and
$hm->unsetProperty('og:image');

しかし、どれも機能しませんでした。何か助けはありますか?

4

1 に答える 1

2

これは、append メソッドが既に定義されている og:image の上に og:image を追加しないためです。append メソッドは、次の og:image を既に定義されている og:image に追加します。それらの配列になります。同様に、prepend を選択すると、新しい og:image タグが既に定義されているタグの前に追加されます。

あなたが本当に欲しいのは、プロパティを追加するのではなく、最初にプロパティを設定することだと思います。

$hm =  $serviceManager->get('ViewHelperManager')->get('headMeta');
$hm->setProperty('og:image', '/images/opengraph/1.jpg');

じゃあ後で:

$hm->setProperty('og:image', '/images/opengraph/2.jpg');

または後で:

$hm->setProperty('og:image', '/images/opengraph/2.jpg');

絶対にリストを吹き飛ばしたい場合は、最後の手段として次のリンクを見ることができます: Zend Framework: Clearing/Resetting HeadLink, HeadMeta, HeadScript, HeadStyle and HeadTitle based on ZF1 but ZF2 コードを見ると同じように見えます.

おそらく、全体的な課題に対するより良い解決策は、モジュール内の og:image を熱心に設定するのではなく、常にできるだけ遅く設定して、このような状況にならないようにすることです。

于 2013-03-30T02:30:21.803 に答える