0

写真ポートフォリオサイトがあります。single.phpページの画像をクリックすると、_content()関数が呼び出され、ユーザーは画像の実際のディレクトリにリダイレクトされます。http://www.abcxyz.com/wp-content/uploads/2011/10/311565_33735319633456038_270235255_n.jpg

画像クリック時にユーザーを次の投稿や他の投稿にリダイレクトしたいのですが、変更が必要なコアワードプレスファイルのアンカータグが取得されません。誰か助けてもらえますか?

4

2 に答える 2

2

さて、私はこのWordPressスタイルを実行し、jQueryでハックしたくありませんでした。これが、functions.phpで使用できるものです。私はそれがあなたがやろうとしていることをするべきだと思います:

function my_the_content_filter() {
$content = get_the_content();
$nextpost = get_permalink(get_adjacent_post(false,'',false));

$body = preg_replace("{<img\\s*(.*?)src=('.*?'|\".*?\"|[^\\s]+)(.*?)\\s*/?>}ims", '<a href='.$nextpost.'><img $1src=$2 $3/></a>', $content);    

return $body;
}
add_filter( 'the_content', 'my_the_content_filter' );

したがって、関数my_the_content_filterは、投稿のコンテンツと次の投稿のリンクを取得します。正規表現を使用して、コンテンツ内の画像にラップされたhrefを次の投稿へのリンクに置き換えます。次に、フィルターをthe_content関数に追加します。

それがあなたのために働くことを願っています!

于 2012-10-31T15:58:38.757 に答える
0

まず最初に、あなたがしていることは少しハッキーかもしれないと思います、そしてあなたはおそらくこれを知っているので、私はアイデアを提案するつもりです。

get_next_posts_link();を使用して次の投稿のURLを取得できます。

その投稿をラップする関連要素のデータ属性にそれを添付できます。投稿がdivまたはarticleタグでラップされているとすると、data-nextpostlink属性を追加できます。

したがって、jQueryを使用して投稿内の画像を検索すると、data-nextpostlink属性から取得できる次の投稿リンクでリンクを非常に簡単に書き換えることができます。

私が言ったように、それはハッキーで、決して理想的ではありません。しかし、あなたがそれをしたいなら、あなたはこのようなことを試すことができます。

WordPressの用語でおそらくより良い方法となる別のアイデアは、add_filterを使用して関数を変更することです。_content関数で画像を識別するには、おそらく正規表現を使用する必要があります。

于 2012-10-31T14:48:44.527 に答える