stryh
フォーラムへの返信
-
redcockerさん。
素早い返信有り難う御座います。
が影響すると言うことは、もしや以下のような書式でソースコードのマークアップに<script>タグを使われていますか?
<script type="syntaxhighlighter" class="brush: php"><![CDATA[ エスケープされたコード ]]></script>
いえ、この書式で書いてはおりません。
<pre>
を使用し書いております。<pre>
タグを使う分には不要な処理なので
add_filter('the_content', 'wp_sh_post_on_print', 9999);
を
// add_filter('the_content', 'wp_sh_post_on_print', 9999);
とコメントアウトしてみて下さい。コメントアウトを行いました。
行った後、再度表示の確認を行った所、問題無くハイライトされることを確認しました。これであとは改行の問題だけです。
有り難う御座いました。redcockerさん。
返信有り難う御座います。
プラグインやテーマの表示前の処理が問題を引き起こしている可能性がありますが、一時的に停止したり標準のものを使ったりすることはできないでしょうか?
これについてはまとまった時間が取れる時にやってみようと思います。
ちなみに、どんな感じで<p>が付加されるのでしょうか?
各行が<p></p>で囲まれる等。redcockerさんがご提示して頂いた「各行が<p></p>で囲まれる」です。
nobitaさん。
返信有り難う御座います。
これでpタグが除去できないということになると、ほかのプラグインやテーマのどこかで、
add_filter('the_content', 'wpautop');
が記述されている可能性もあると思います。この線で疑ってみた所、テーマではadd_filterしている箇所はありませんでした。
プラグインについては結構多い数のプラグインを使用しているため全て確認をしておりませんが、コードハイライトのプラグインに的を絞ってみてみました。SyntaxHighlighter.phpファイルを開いて
// Display hooks
add_filter( ‘the_content’, array( &$this, ‘parse_shortcodes’ ), 7 );7を1に変更するとかも、試して損はないかも
wp-syntaxhighlighter/wp-syntaxhighlighter.phpに以下のコードがありました。
add_filter('the_content', 'wp_sh_post_on_print', 9999);
9999の所を1にして見た所、<p>タグは除去され、表示されました。
しかし、また違う問題が出て来て、改行箇所が2重改行になってしまうという事象です。
↓のような感じです。
—
$text = str_replace(‘
‘, ”, $text);
$text = str_replace(‘<p>’, “\n”, $text);
—
↓
—
$text = str_replace(‘
‘, ”, $text);$text = str_replace(‘<p>’, “\n”, $text);
—
取りあえず最初の問題はクリアになりましたが、引き続き調べてみます。
有り難うございました。
redcockerさん。
返信有難う御座います。
コードが含まれる記事を再編集し、保存し直していなければ、表示のタイミングで<p>タグが付加されているのではないかと思いますが、
これは確認した方が良いと思います。これは既に確認をしています。
投稿時に情報として含めておらず申し訳ありません。DBに<p>は一緒に保存されてません。それと再編集をし保存し直しも行っております。
それでも<p>が挿入されているので表示のタイミングではないかと考えています。また、既存の記事でしか、この問題を確認されていないなら、3つのプラグイン用に新しくソースコードを含む記事を作成し、
それぞれのプラグインで正しく表示されるかの確認もされた方が良いと思います。ご指摘を頂き3つのプラグイン様にソースコードを含む記事を作成しました。
投稿してしまうのはゴミになってしまうのでプレビューで確認をしました。
3つ共全てで<p>タグが挿入されるのを確認しました。もうちょっと調べてみます。