0

WordPress と WP-O-Matic を使用して、さまざまなフィードからコンテンツを自動的に取得しています。内容はすべて大文字で、WordPress ブログの投稿はくだらないものに見えます。さまざまな手法を試してみましたが、どれも完璧に機能していないようです。

ここに私が試したいくつかの例があります:
php で文の最初の文字を大文字にする
方法 文の最初の単語の最初の文字を大文字にする方法?

現在、このコードを使用していますが、本来のように機能しません。

function fwisc_content($content) {
if ( is_single() ) {
global $post;
$string = get_the_content($post->ID);
$sentences = preg_split('/([.?!]+)/', $string, -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
$new_string = '';
foreach ($sentences as $key => $sentence) {
    $new_string .= ($key & 1) == 0?
        ucfirst(strtolower(trim($sentence))) :
        $sentence.' ';
}
return trim($new_string); 

} else { 
    return $content;
}
}
add_action( 'the_content', 'fwisc_content' );

問題は、このコードがすべての<p></p>タグを削除して、投稿全体が 1 つの段落のように見えることです。

これが私がする必要があることです:
サンプル入力:

<p>THIS IS THE FIRST SENTENCE. THIS IS THE SECOND SENTENCE! THIS IS THE THIRD SENTENCE.. THIS IS THE FOURTH SENTENCE! IS THIS THE FIFTH SENTENCE?</p>
<p>THIS IS THE FIRST SENTENCE. THIS IS THE SECOND SENTENCE! THIS IS THE THIRD SENTENCE.. THIS IS THE FOURTH SENTENCE! IS THIS THE FIFTH SENTENCE?</p>

期待される出力:

<p>This is the first sentence. This is the second sentence! This is the third sentence.. This is the fourth sentence! Is this the fifth sentence?</p>
<p>This is the first sentence. This is the second sentence! This is the third sentence.. This is the fourth sentence! Is this the fifth sentence?</p>

助けてください

4

1 に答える 1

0

次のコードを試してください。

<style>
    p:first-letter
    {
    text-transform: uppercase;
    }
</style>
<?php
function upperFirstWord($str) {
    return preg_replace('/([.!?])\s*(\w)/e', "strtoupper('\\1 \\2')", ucfirst(strtolower($str)));
}

echo upperFirstWord("<p>THIS IS THE FIRST SENTENCE. THIS IS THE SECOND SENTENCE! THIS IS THE THIRD SENTENCE.. THIS IS THE FOURTH SENTENCE! IS THIS THE FIFTH SENTENCE?</p><p>THIS IS THE FIRST SENTENCE. THIS IS THE SECOND SENTENCE! THIS IS THE THIRD SENTENCE.. THIS IS THE FOURTH SENTENCE! IS THIS THE FIFTH SENTENCE?</p>");
?>

これが役立つことを願っています。ありがとうございました :-)

于 2013-08-12T12:57:16.863 に答える