2016-09-16 7 views
0

wordpressによって生成された抜粋の最初の単語を削除する方法を探していました。どういうわけか、オンラインで可能なすべての解決策が機能しませんでした。抜粋の最初の単語を削除しました

すべてのイベントを表示するカスタムポストタイプアーカイブページがあります。私はVisual Composerを使ってイベントを作成しています。だから、基本的に私が削除したいテキストは見出しです。

私はこのコードを以下に掲載していますが、動作しません。

私はこのlinkからアイデアを得て、そこに解決策を試しました。私は私が望むものに少し近づいていません。これは、単に最初のスペースの後にすべてのものを返し

function removeFirstWord($text) 
{ 
    return substr($text, strpos($text, " ") + 1); 
} 

add_filter('wp_trim_excerpt', function ($text) 
{ 
// Make sure we have a text 
if (!$text) 
    return $text; 

$text    = ltrim($text); 
$text_as_array  = explode(' ', $text); 

// Make sure we have at least X amount of words as an array 
if (10 > count($text_as_array)) 
    return $text; 

$text_array_to_keep = array_slice($text_as_array, 2); 
$text_as_string  = implode(' ', $text_array_to_keep); 
$text    = $text_as_string; 

return $text; 
}): 

答えて

0

はちょうどこのような単純な何かをします。トリム機能を追加して、最初の文字がスペースでないことを確認することもできます。

+0

ありがとう@EatPeanutButterただし、コードが機能しませんでした。テキストはまだそこにあります。 –

+0

質問を編集して、コードの外観、使用している入力、出力の様子を投稿してください。 – WillardSolutions

+0

私が使った元のソリューションで質問を更新しました。 –

0

さて、私は今働いています。

ここに最終コードがあります。ループの内側にあるはずです。

$excerpt = get_the_content(); 
$excerpt = preg_replace("~(?:\[/?)[^/\]]+/?\]~s", '', $excerpt); 
$excerpt = wp_trim_words($excerpt, 30, '...');  
echo $excerpt; 
関連する問題