こんにちは私はすべての.doc/docx .xls/xlsxファイルをオンラインのオフィスで開かせようとしています。
これは.docへのすべてのリンクを意味します。
http://mywebsite.com/wp-content/uploads.link.doc
代わりにオフィスのオンラインプレビューリンクを指す必要があります
https://view.officeapps.live.com/op/view.aspx?src=http://mywebsite.com/wp-content/uploads/link.doc
どうやってこれをやるのかわからない?任意の助けは大歓迎です!
ありがとうございます。
この質問がWordPressに関連しているかどうかわかりません。 .htaccess
リダイレクト、またはブラウザ拡張を介して処理される可能性があるようです。
そうは言っても:はwp_get_attachment_url
フィルタを使おうとするでしょう。これは wp_get_attachment_url()
によって返されるURLに適用されます。
例えば:
function wpse95271_filter_wp_get_attachment_url( $url ) {
if ( 0 === stripos( strrev( $url ), 'cod.' ) ) {
// This is a Word doc; modify the URL
$url = 'https://view.officeapps.live.com/op/view.aspx?src=' . $url;
}
return $url;
}
add_filter( 'wp_get_attachment_url', 'wpse95271_filter_wp_get_attachment_url' );
(これは完全にテストされていない、例としてのみ提示されている。)
a).docx、.xls、.xlsxを追加する方法
条件を拡張するだけです。わかりやすくするために抽象化した例です。
function wpse95271_filter_wp_get_attachment_url( $url ) {
// Using a simple ternary expression;
// there may be better ways, such as
// an array of doc extensions, and a
// foreach loop, etc
$is_msoffice_doc = (
0 === stripos( strrev( $url ), 'cod.' ) ||
0 === stripos( strrev( $url ), 'xcod.' ) ||
0 === stripos( strrev( $url ), 'slx.' ) ||
0 === stripos( strrev( $url ), 'xslx.' ) ? true : false
);
if ( $is_msoffice_doc ) {
// This is an Office doc; modify the URL
$url = 'https://view.officeapps.live.com/op/view.aspx?src=' . $url;
}
return $url;
}
add_filter( 'wp_get_attachment_url', 'wpse95271_filter_wp_get_attachment_url' );
b)URLを置き換える代わりに、通常のダウンロードリンクの隣に "open online"というリンクを追加することができますか。
上記のフィルタで行ったように、テンプレートに独自のリンクを作成し、添付URLをベースURLに追加するだけです。