web-dev-qa-db-ja.com

ギャラリーで画像タイプ以外のファイルをファイルタイプ固有のロゴ付きで表示しようとしています

私が最初にこれを調べ始めたとき、 File Gallery は私が問題を解決することにずっと近づいた。唯一の問題は、ファイルをアップロードしたときにプラグインが一般的な非画像アイコンしか表示しないことです。

誰もがファイルギャラリーに特有のロゴを達成するためにFile Galleryと一緒に、あるいはその代わりに働く既存のプラグインを知っていますか(たとえば、.docファイルをアップロードするとプラグインはMS Wordロゴを表示します)。

既存のプラグインに失敗した場合、私自身の手作りの解決策を作り出すことを試みるための良い出発点は何でしょうか?

前もって感謝します!

注:これはもともとwordpress.orgサポートフォーラム here に投稿されたものですが、そこに返事がないので私は運を試してみることにしましたここに。

2
Dan

WordPressのwp-includes/post.phpにはネイティブ関数wp_mime_type_icon()があります。

基本的な例:

// $attachment should be a full post object 

if ( wp_attachment_is_image( $attachment->ID ) )
{
    echo wp_get_attachment_image(
        $attachment->ID,
        array( 480, 900 ),
        FALSE,
        array ( 'class' => 'aligncenter' )
    );
}
else
{
    echo '<img src="' . wp_mime_type_icon( $attachment->post_mime_type ) . '">';
}

利用可能なファイルタイプアイコンについてはwp-includes/images/crystal/を見てください。

  • アーカイブ
  • オーディオ
  • コード
  • default
  • 資料
  • インタラクティブな
  • スプレッドシート
  • テキスト
  • ビデオ

enter image description here

あなたはあなた自身の画像ディレクトリを設定し、WordPressにあなたの画像を使用させるためにローカルパスのための'icon_dir'とURIのための'icon_dir_uri'をフィルタすることができます。
単数形ファイルのみを変更するには、'wp_mime_type_icon'をフィルター処理します。

apply_filters( 'wp_mime_type_icon', $icon, $mime, $post_id )
2
fuxia

私はあなたがそのプラグインコードを変更せずに他のギャラリープラグインでうまく動かせるようになることは幸運だとは思いませんが、プラグイン/関数を書くかテンプレートページを使用することでかなり簡単にできます。

あなたができることはget_childrenをつかむためにpost_mime_typeを使うことです、あなたの場合単純な例は以下のようになるでしょう:

get_children( 'post_type=attachment&post_mime_type=doc' );
//assuming your using ms .doc files.

MIMEタイプを取得したら、wp_get_attachment_linkを使用してリンクを作成できます。残念ながらこの関数の$iconパラメータはブール値なので、独自のアイコンを追加することはできません。目的のアイコンに実際のURLをechoname__で追加する必要があります。つかいます。

http://codex.wordpress.org/Function_Reference/get_children
http://codex.wordpress.org/Function_Reference/wp_get_attachment_link
http://tgrayimages.com/automate-file-attachments-on-your-wordpress-posts/

0
Wyck