カテゴリを画像に追加したので、それらを使用してポートフォリオページ内の画像をフィルタ処理できます。割り当てられたカテゴリを含む各画像にrel属性を追加する必要があると思います。これは正しいアプローチですか?もしそうなら、どのように私は適切なカテゴリーでadd relを追加しますか?
これはrel
属性に有効です。
/**
* Create a rel attribute from the image categories
*
* @see http://wordpress.stackexchange.com/a/158024/26350
*/
add_filter( 'get_image_tag',
function( $html, $id )
{
$rel = array();
foreach( (array) get_the_category( $id ) as $cat )
{
$rel[] = $cat->slug;
}
return str_ireplace(
'<img ',
sprintf( '<img rel="%s" ', join( ' ', $rel ) ),
$html
);
}
, 10, 2 );
挿入された画像のHTMLを変更するためにget_image_tag
フィルタを使用します。
Ps:私はこれをWordPress 3.9.2のインストールで正常にテストしました。次のコードスニペットを使用しました。
add_action( 'init',
function()
{
register_taxonomy_for_object_type( 'category', 'attachment' );
}
);
添付ファイルに対してカテゴリを有効にします。
私はrelの代わりにdata-filterを使うように少し修正しました。完璧に動作し、標準に準拠しています。
add_filter( 'get_image_tag',
function( $html, $id )
{
$dataFilter = array();
foreach( (array) get_the_category( $id ) as $cat )
{
$dataFilter[] = $cat->slug;
}
return str_ireplace(
'<img ',
sprintf( '<img data-filter="%s" ', join( ' ', $dataFilter ) ),
$html
);
}
, 10, 2 );