私はImageの投稿フォーマットを持っています、そして私は<p>
タグで画像が包まれているという問題に遭遇しています。これらの投稿タイプのタグ(特にsingle.php
バージョン)を削除したいです。
異なる投稿フォーマットの投稿に影響を与えずに、テーマのフォーマットの中に入り込んで<p>
タグを削除するか、このタイプの投稿の出力に必要なフォーマットを作成するにはどうすればよいですか。
Wordpressは自動的に<p>
タグをコンテンツに広告します。そのため、コンテンツをロードしている間に表示されます。これはフィルタwpautop
と一緒です。そのため、このフィルタは投稿タイプimage
に対してのみ削除します。これを管理するには、functions.phpファイルに次のコードを追加します。
// Add the filter to manage the p tags
add_filter( 'the_content', 'wti_remove_autop_for_image', 0 );
function wti_remove_autop_for_image( $content )
{
global $post;
// Check for single page and image post type and remove
if ( is_single() && $post->post_type == 'image' )
remove_filter('the_content', 'wpautop');
return $content;
}
is_single()
は単一の投稿が表示されているかどうかを確認します。
この投稿タイプが「image」と呼ばれる場合は、画像投稿タイプのみの表示を処理する単一のテンプレートを作成できます。
'single.php'ファイルをコピーして、そのコピーの名前を 'single-image.php'に変更してください。これで、画像投稿だけを制御できます。タグを削除するには、strip_tags()
関数を使います。投稿のコンテンツをthe_content()
で印刷した場合、既にコンテンツフィルタが適用され、行が<p>
タグで囲まれます。
タグなしで画像のコンテンツを取得する方法の例は次のとおりです。
$imageContent = get_the_content();
$stripped = strip_tags($imageContent, '<p> <a>'); //replace <p> and <a> with whatever tags you want to keep after the strip
echo $stripped;
お役に立てれば!
テーマのfunctions.phpファイルに以下のコードを追加するだけです。
コンテンツの場合
remove_filter( 'the_content', 'wpautop' );
抜粋のために
remove_filter( 'the_excerpt', 'wpautop' );
もっと知る: https://codex.wordpress.org/Function_Reference/wpautop
single-post
またはsingle-format-standard
に特定の投稿クラスを使用して、必要に応じて1ページで非表示にすることで、Webサイトの他の部分と競合しないようにできます。
CSSコードの例*
.single-post .entry-content p:empty { display: none; }
特定の投稿形式の画像のCSSコードの例
.single-format-image .entry-content p:empty { display: none; }
特定のページや投稿から削除したい場合はこれを呼び出すことができます
<?php remove_filter ('the_content', 'wpautop'); the_content(); ?>
get_the_content()
の代わりにthe_content()
を使うことができます。これはあなたの問題を解決する可能性があり、別の解決策は@Chittaranjanによる記述と同じです。
コンテンツからpタグを削除するには、以下のコードを使用できます。
<?php remove_filter ('the_content', 'wpautop'); ?>
@chittaranjanによるソリューションに基づいてコーディングするもう1つの方法
add_filter( 'the_content', 'remove_autop_for_image', 0 );
function remove_autop_for_image( $content ) {
global $post;
if ( is_singular('image'))
remove_filter('the_content', 'wpautop');
return $content;
}