откройте все.документы в word online


Эй, я пытаюсь открыть все файлы .doc/docx.xls/xlsx в office online.

Это означало бы, что каждая ссылка на .doc

http://mywebsite.com/wp-content/uploads.link.doc

Вместо этого нужно было бы указать ссылку на предварительный просмотр office online

https://view.officeapps.live.com/op/view.aspx?src=http://mywebsite.com/wp-content/uploads/link.doc

Я даже не уверен, как это сделать? Любая помощь будет очень признательна!

Спасибо!

Author: ameeromar, 2013-04-10

1 answers

Я не уверен, что этот вопрос связан с WordPress. Похоже, что это может быть обработано с помощью перенаправления .htaccess или расширения браузера.

Это говорит о том, что вы могли бы попытаться использовать фильтр wp_get_attachment_url, который применяется к URL-адресу, возвращаемому wp_get_attachment_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' );

Б) вместо замены URL-адреса могу ли я добавить ссылку рядом с обычной ссылкой для загрузки с надписью "открыть онлайн" со ссылкой на это?

Просто создайте свою собственную ссылку в шаблоне, добавив URL-адрес вложения к базовому URL-адресу, как это сделано в приведенном выше фильтре.

 5
Author: Chip Bennett, 2013-04-10 12:19:23