web制作備忘録(自分用)

php,javascript,wordpress等のサンプルコードとか

タグ:wordpress

Wordpressの自動成型の機能を解除すると、自動でPタグが入るのを防げるので便利なのだが、 改行タグを入れないと改行されなくなるため、クライアントが入力する際には不便です。 autopの機能は解除しつつ、改行を反映させるにはどうしたらいいか?

①autopを解除。
②出力される文字列にnl2br()をかます。

この手順でやってみました。

①autopを解除
function.phpに下記を追加
remove_filter('the_content', 'wpautop');// 記事の自動整形を解除・無効にする
remove_filter('the_excerpt', 'wpautop');// 抜粋の自動整形を解除・無効にする

②出力される文字列にnl2br()をかます。
本文の出力を下記のようにすればいい。
echo nl2br(get_the_content());

しかし、

これだとHTMLでごにょごにょしたい時に改行全部反映されるので、不便。。。

なんで下記のようにしてみた。
if(post_custom('noautotext')){
	echo nl2br(get_the_content());
}else{
	the_content();
}

カスタムフィールドで、noautotextとか適当にチェックボックスをいれて、 自動で改行したい時と、HTMLで書きたいときを振り分けることにしました。

wordpressで特定のカテゴリーのアーカイブページ(category-$slug.php)にて記事一覧を作成したいときのサンプルコード

表示する内容

  • 画像サムネイル(アイキャッチ)
  • 記事タイトル
  • 更新日
  • 本文テキスト(70文字)

サンプルではカテゴリーのスラッグ名を【sample】とする。

<section>
	<?php query_posts('category_name=sample&posts_per_page=10'); ?>
	<?php if (have_posts()) : while (have_posts()) : the_post();?>
		<article>
			<a href="<?php the_permalink() ?>">
				<figure><?php the_post_thumbnail('thumbnail'); ?></figure>
				<h1><?php the_title(); ?></h1>
				<time datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y年m月d日'); ?>更新</time>
				<p><?php echo mb_substr(strip_tags($post-> post_content),0,70).'...'; ?></p>
			</a>
		 </article>
	<?php endwhile; endif; ?>
</section>

↑このページのトップヘ