極上!! 90's OLD KENZO オーストリア製 雪柄 ポロニット 古着
楽天市場】POLO Ralph Lauren Men's Cotton Cable Crew Sweater US , 楽天市場】POLO Ralph Lauren Men's Cotton Cable Crew Sweater US , POLO RALPH LAUREN(ポロ ラルフ ローレン)|メンズのニット/セーター , 楽天市場】POLO Ralph Lauren Men's Silk Cable Crew Sweater US ポロ , POLO RALPH LAURENのニット・セーター検索結果|古着の通販サイト , POLO RALPH LAUREN / ポロ ラルフ ローレン (メンズ) ニット , Amazon.co.jp: ラルフローレン セーター メンズ
【CANADIAN SWEATER】カウチン L~XL カナディアンセーター

【ピマコットン】ポロバイラルフローレン ワンポイント刺繍 ニット ベージュ☆XL
ラルフローレンのウール100%のセーターです。色はネイビーに赤のマークです。殆ど着用していない為状態は良いと思います。手首、裾のリブ編みも伸びもダメージもなくきれいです。身幅約56㎝、着た約p65㎝袖丈約64㎝綺麗な状態ですが、中古品にご理解の上お買い求め下さいませ。#ポロラルフローレンウールセーター#ポロラルフローレンメンズセーターNo.429
カテゴリー:メンズ>>>トップス>>>ニット/セーター
商品の状態:目立った傷や汚れなし
商品のサイズ:L
ブランド:ポロラルフローレン
:ブラック系/ブルー系
配送料の負担:送料込み(出品者負担)
配送の方法:ゆうゆうメルカリ便
発送元の地域:大阪府
発送までの日数:2~3日で発送

楽天市場】POLO Ralph Lauren Men's Cotton Cable Crew Sweater US
ICEBERG アイスバーグ ディズニー 刺繍 ニット ドナルド ディズニー
楽天市場】POLO Ralph Lauren Men's Cotton Cable Crew Sweater US
【超希少】Betty Boopベティブープ ベティちゃん 90s ニット
POLO RALPH LAUREN(ポロ ラルフ ローレン)|メンズのニット/セーター
90s ハンドニット モヘヤ?アンゴラ? アート 総柄 クレイジーパターン 希少
楽天市場】POLO Ralph Lauren Men's Silk Cable Crew Sweater US ポロ
ポロラルフローレン ハーフジップ セーター ニット ワンポイント 刺繍
POLO RALPH LAURENのニット・セーター検索結果|古着の通販サイト
【人気カラーグリーン】トミーヒルフィガー ワンポイント刺繍 ショールカラーニット
POLO RALPH LAUREN / ポロ ラルフ ローレン (メンズ) ニット
フレッドペリー★チルデンアランセーター★100%メリノウール★超ビッグサイズ
Amazon.co.jp: ラルフローレン セーター メンズ

売れ筋アイテムラン ポロ バイ ラルフローレン メンズウールセーター ニット/セーター

<!–more–> で記事を区切ったときに出力される続きを読むリンクや、ターゲットに使われてるspanタグそのものを変更する方法について。

デフォルトだと、全文が表示されたときに挿入されるソースはこうです。

<p><span id="more-4"></span></p>

たとえばこれを次のようにDivへ変更する

</div>
<div id="more-4">

the_content_more_link について追加

正規表現置換による方法

2.5以上だとTinyMCEの性能がいいので大抵以下の正規表現置換で変更出来ると思います。
このブログのテーマ(Vicuna)もこれで置換しています。
function.phpに以下をコピペしてみてください。

function moretag_custom($content) {
	if (is_page() || is_single()) {
		$content = preg_replace('/<p><span id="more-([0-9]+?)"><\/span>(.*?)<\/p>/i', "\n</div>\n<div id=\"more-$1\" class=\"entry\">\n<p>$2</p>", $content);
	}
	return $content;
}
add_action('the_content', moretag_custom, 100);

条件にマッチしないとスルーしてしまうので、いくつかパターンを用意した方が確実です。
2.5より前のバージョンだと、綺麗にPタグ内にspanが入ってなかったりaタグだったりするので合わせて正規表現の条件を変える必要があります。
また、#more-postIDの書式を変更した場合、続きを読むリンクのターゲットも変更しておく必要があります。

get_extended()関数による方法

チラッと書いたget_extended()でも一応やれます。

single.phpとかで(以下はDefaultテーマ用)

<?php $contents = get_extended($post->post_content); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<div class="entry">
	<?php print(wpautop($contents[main])); ?>
<?php if(!empty($contents[extended])):?>
</div>
<div id="more-<?php the_ID();?>">
	<?php print(wpautop($contents[extended])); ?>
<?php endif;?>

見ての通りthe_content()を使ってないので、category.phpとかindex.phpには不向き。
この場合も、リンクの#more-postIDの書式を変更する場合は、続きを読むリンクのターゲットも変更しておく必要があります。

「続きを読む」リンクのスタイル変更

デフォルトのリンクテキストは(more…)で、#more-記事IDにリンクされています。

ペイントフラワーボリュームフレアスカート S

<?php the_content("『".the_title('', '', false)."』の続きを読む&raquo;"); ?>

▼ソースはこう

<p><a class="more-link" href="http://localhost/wordpress/?p=1#more-1">Hello world!の続きを読む»</a></p>

タグも使えます

<?php the_content(__('<span class="moretext">Read the rest of this entry &raquo;</span>', 'kubrick')); ?>

デフォルトテーマだと翻訳解けちゃうのでmoファイルの修正が必要。

ソースそのものの変更は次のような方法があります。

正規表現による置換

vicunaのソースを参考に、上の置換にelseを追加する。

function.php

URBAN RESEARCH ライダース

preg_replace内の中央の引数を変更すれば別の書式に出来ます。

コアのソースそのものを変更

上記で挙げた変更はコアファイルのソースを変更しても同じことが出来ます。
wordpressのバージョンアップしたら戻ってしまいますが、テーマやエディタに依存しないので確実かも。

挿入されるspanタグの変更はwp-includes/post-template.phpの121行目くらいに次の文があるので

$output .= '<span id="more-'.$id.'"></span>'.$content[1];

Deuxieme Classe ベロアタイトスカート グリーン 34

$output .= '</div><div id="more-'.$id.'">'.$content[1];

続きを読むリンクの変更は125行目くらいに次の文があるので

$output .= ' <a href="'. get_permalink() . "#more-$id\" class=\"more-link\">$more_link_text</a>";

好きなように変更するだけでおk。

$output .= '<p class=\"more-link\"><a href="'. get_permalink() . "#more-$id\">$more_link_text</a></p>";

参考:【新品、未使用】トラビスマシュー テーラード ジャケット メンズ サイズ:L

売れ筋アイテムラン ポロ バイ ラルフローレン メンズウールセーター ニット/セーター

アクションフィルターにthe_content_more_linkというのが追加されたので、こいつを使えば割と簡単にmoreリンクの変更が可能。

付与されるIDを消して#moreだけにするサンプル:

function custom_more_link( $more_link ) {
	$more_link = preg_replace('/#more-[\d]+/i', '#more', $more_link );
	return $more_link;
}
add_filter( 'the_content_more_link', 'custom_more_link', 10 );

この場合のcustom_more_linkには引数でアンカータグしか渡されないが、
add_filterの一番最後に引数の数を指定する2を追加すると、リンクテキストも得る事が出来るようになる。

付与されるIDを消して#moreだけにした上でテキストも変える:

function custom_more_link( $more_link, $more_link_text ) {
	$more_link = preg_replace('/#more-[\d]+/i', '#more', $more_link );
	return str_replace($more_link_text, "『".the_title('', '', false)."』の続きを読む&raquo;", $more_link);
}

リンクテキストの変更はthe_contentでも可能だからオマケ扱い。

しかしこのthe_content_more_linkで変更出来るのはリンク部分だけなので、
moreリンクの親(pタグ)にクラスを付与する場合にはやっぱり正規表現置換するしかない。

function moretag_custom($content) {
	if (is_page() || is_single()) {
		$content = preg_replace('/(?:<p>)*<span id="more-([0-9]+?)"><\/span>(.*?)(?:<\/p>)*/i', "\n</div>\n<div id=\"more\" class=\"entry\">\n$2", $content);
	}else{
		$content = preg_replace('/<p>\s*<a href="(.+?)#more" class="more-link">(.+?)<\/a><\/p>/', '<p class="more"><a href="$1#more" class="more-link">$2</a></p>', $content);
	}
	return $content;
}
function custom_more_link( $more_link, $more_link_text ) {
	$more_link = preg_replace('/#more-[\d]+/i', '#more', $more_link );
	return str_replace($more_link_text, "『".the_title('', '', false)."』の続きを読む&raquo;", $more_link);
}
add_action('the_content', moretag_custom, 100);
add_filter( 'the_content_more_link', 'custom_more_link', 10, 2 );

売れ筋アイテムラン ポロ バイ ラルフローレン メンズウールセーター ニット/セーター

  1. includeでは出来ませんでしたが、get_extendedでは問題なく出来ました
    出来ればfunctions.phpで済ませたいところなので、正規表現置換の方はもう少し自分で試行錯誤してみようと思います
    丁寧に答えて頂いてとても助かりました
    ありがとうございました

  2. ピンバック:
  3. ピンバック:

このサイトはスパムを低減するために Akismet を使っています。。