2016-07-09 10 views
0

要爲Facebook創建正確的og:描述我希望文本文章的前200個字符必須用作描述(否則它只是標題)。如果對一個變量的內容進行條件處理(如果包含字符)

所以在我的頭文件中我寫道:

{if not empty($post_info.parsed_excerpt)} 
<meta name="description" content="{$post_info.parsed_excerpt|truncate:200|escape}" property="og:description"> 
{else} 
<meta name="description" content="{$post_info.title|escape} - {$blog_data.title|escape}" property="og:description"> 
{/if} 

雖然我說得對,但我發現有例外。 文章可能包含的東西不僅僅是可讀的文字,而且圖像插件也可能存在於此<img src="http.../>。我甚至有沒有文字內容,只有一個圖像的情況。

所以我需要適應它。 我發現strip_tags修飾符,所以我調整了一下 {$post_info.parsed_excerpt|truncate:200|escape}{$post_info.parsed_excerpt|truncate:200|strip_tags|escape} 和說明現在沒有任何標籤。一半完成!:)

仍然我需要第一個條件{if not empty($post_info.parsed_excerpt)}尋找$post_info.parsed_excerpt沒有標籤,我不知道如何。

感謝您幫助

+0

你最好先帶標籤,然後截斷爲200:'{$ post_info.parsed_excerpt |用strip_tags |截斷:200 |逃生}' – m13r

+0

什麼是首要條件?我不明白...只要對其他變量做同樣的事情...... – m13r

回答

-1

我不是在smarty3精通所有,實際上這是我第一次聽說過它。此外,我不完全確定你想用新的if語句達到什麼目的,你是否試圖檢查,除HTML標籤及其屬性外,字符串是否爲空?如果是這樣,您可以不在條件之前剝離標籤,將其分配給新變量,然後檢查(原諒這是一種僞代碼,而不是smarty,如前所述,我不熟悉它)$excerpt_without_tags = strip_tags($post_info.parsed_excerpt); if (not empty($excerpt_without_tags)) { // Do stuff }

此外,只是從標題說如果包含字符,看看php strpos()函數,再次不是肯定有關該功能的聰明支持。

希望這可能會幫助你一點,如果我誤解了,很抱歉!

編輯:格式化

相關問題