1434185537 WordPressのテーマ「customizr」でサイトを制作しています。


customizrはこんな感じです。
http://kikiora2000.xsrv.jp/

質問に添付している画像の部分を全てハイパーリンクにしたいと思っています。

「記事を読む」ボタンはなくしても良いのですが、
画像・H2・文章のどれをクリックしても、記事へ飛ぶリンクにしたいです。

リンク範囲を拡張すれば、できそうに思うのですが分かりません。

CSSをどのようにすれば、良いでしょうか。

アドバイスお願いいたします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2015/06/13 17:52:17
  • 終了:2015/06/20 17:55:03

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4605ベストアンサー獲得回数19432015/06/14 01:26:04

残念ながら、CSS だけではどうにもなりません。
該当するテキスト (P タグで括られた部分) を、A タグで囲ってあげる必要があります。

最新の customizr 3.3.9 のソースを読んでみました。
該当する箇所は、以下の部分です。
http://themes.svn.wordpress.org/customizr/3.3.9/inc/parts/class-content-featured_pages.php
このソースの 220行目辺り。

    //text block
    $tc_fp_text_block   = sprintf('<p class="fp-text-%1$s">%2$s</p>',
                        $fp_single_id,
                        $text
    );
    echo apply_filters( 'tc_fp_text_block' , $tc_fp_text_block , $fp_single_id , $text, $featured_page_id);

ベタに対応するなら、このテーマのソースをいじっちゃう。
プラグインの外側からいじるなら、javascript で ".widget-front P" 辺りをひろって A タグで囲んであげる。

もしかしたら Wordpress のフィルタで、テーマをいじらずにどうにかなるのかも(でも、元の function.php をいじることにはなるはず)。



申し訳ありませんが、ぼくのレベルだとここまでです (´・ω・`)

他1件のコメントを見る
id:rouge_2008

a-kuma3さん、もしかして呼びました?

概要テキストは「tc_fp_text_block」フィルタを利用すると書き換えできると思います。
「customizr」テーマの「functions.php」のPHPを記述する箇所に以下を追加してみてください。

function text_block_add_link( $tc_fp_text_block , $fp_single_id , $text, $featured_page_id ) {
	/* リンクURL取得 */
	$featured_page_link = get_permalink( $featured_page_id );

	/*以下1と2のどちらか好きな方 */
	/* 方法1.置換する */
	$tc_fp_text_block = preg_replace( '!(<p [^>]+>)(.+?)(?=</p>)!', '$1<a href="'. $featured_page_link . '">$2</p>', $tc_fp_text_block );

	/* 方法2.生成し直す*/
	$tc_fp_text_block   = sprintf('<p class="fp-text-%1$s"><a href="%3$s">%2$s</a></p>',
									$fp_single_id,
									$text,
									$featured_page_link
                );
	return $tc_fp_text_block; // ここは必ず記述
}
add_filter( 'tc_fp_text_block' , 'text_block_add_link', 10, 4 ); 


タイトルテキストは、a-kuma3さんが引用したコードのすぐ上にある「tc_fp_title_block」フィルタで大丈夫だと思います。
・customizr 3.3.9 のソース

                //title block
                $tc_fp_title_block  = sprintf('<%1$s>%2$s %3$s</%1$s>',
                                    apply_filters( 'tc_fp_title_tag' , 'h2', $fp_single_id, $featured_page_id ),
                                    $featured_page_title,
                                    ( isset($edit_enabled) && $edit_enabled )? sprintf('<span class="edit-link btn btn-inverse btn-mini"><a class="post-edit-link" href="%1$s" title="%2$s" target="_blank">%2$s</a></span>',
                                              get_edit_post_link($featured_page_id),
                                              __( 'Edit' , 'customizr' )
                                              ) : ''
                );
                echo apply_filters( 'tc_fp_title_block' , $tc_fp_title_block , $featured_page_title , $fp_single_id, $featured_page_id );


・概要テキストと同じように、置換するかあるいは上記のコードの「$tc_fp_title_block」を参考にして生成し直すか、どちらでも好きな方法が使えると思います。
ただ、権限があるユーザーでログインしている場合、編集リンクも追加されるようですので、置換する場合は編集用のリンクと入れ子にならないようにする必要があります。

function title_block_add_link( $tc_fp_title_block, $featured_page_title, $fp_single_id, $featured_page_id ) {
	$featured_page_link = get_permalink( $featured_page_id );

	/* ここに処理追加 */

	return $tc_fp_title_block;
}
add_filter( 'tc_fp_title_block', 'title_block_add_link', 10, 4 );


・プラグイン API
http://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API

2015/06/14 07:22:16
id:rouge_2008

リンクにするのを忘れたので再投稿します・・・

タイトルテキストの生成し直しは、そのままでは無理みたいです。すみません・・・
置換の場合のコードです。(正規表現はもっといい書き方があればお願いします。)

function title_block_add_link( $tc_fp_title_block, $featured_page_title, $fp_single_id, $featured_page_id ) {
	$featured_page_link = get_permalink( $featured_page_id );
	$tc_fp_title_block = preg_replace( '!<h(\d)([^>]+)?>(.+?)\s(<span.+)?</h\d>!', '<h$1$2><a href="' . $featured_page_link . '">$3</a> $4</$1>', $tc_fp_title_block );
	return $tc_fp_title_block;
}
add_filter( 'tc_fp_title_block', 'title_block_add_link', 10, 4 );

2015/06/14 08:01:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません