如何为照片标题添加信用额度

时间:2013-10-23 作者:Sean Henderson

我试图找到一种方法,自动添加一个摄影师信用额度到用户插入的照片。我已经在媒体上传器中添加了“摄影师姓名”和“摄影师URL”的自定义字段,但我无法找到一种方法来自动将这些字段的输入插入到标题字段中,以便它们与照片一起自动显示。

以下是生成自定义字段的代码:

function attachment_field_credit( $form_fields, $post ) {
$form_fields[\'photographer-name\'] = array(
    \'label\' => \'Photographer Name\',
    \'input\' => \'text\',
    \'value\' => get_post_meta( $post->ID, \'photographer_name\', true ),
    \'helps\' => \'If provided, photo credit will be displayed\',
);

$form_fields[\'photographer-url\'] = array(
    \'label\' => \'Photographer URL\',
    \'input\' => \'text\',
    \'value\' => get_post_meta( $post->ID, \'photographer_url\', true ),
    \'helps\' => \'Add Photographer URL\',
);  

return $form_fields;
}

add_filter( \'attachment_fields_to_edit\', \'be_attachment_field_credit\', 10, 2 );
谢谢你的帮助。

1 个回复
最合适的回答,由SO网友:mrwweb 整理而成

我试过这么做一次,差点就成功了。这是我学到的。根据您的需要,此解决方案可能是可行的。

将内容插入编辑器时,您可以使用get_image_tag 过滤器:

/**
 * Filter to get caption and append image information to it.
 *
 * @return text HTML content describing with media attribution
 **/

add_filter(\'get_image_tag\', \'my_append_media_credit\', 20, 2);

function my_append_media_credit( $html, $id ) {

    $my_media_string = /* get your fields and put them together nicely */;

    $html = $html . $my_media_string;

    return $html;

}
然而,你会注意到,我提到它只适用于插入到帖子中的图像(可能会更新,但我需要检查一下)。所以,如果你是从零开始创建一个网站,这可能会让你走得更远,但我一直坚持将其追溯到帖子中的现有图像。

通过过滤,您可以获得带有字幕的图像的额外覆盖范围img_caption_shortcode 过滤[caption] 短代码输出,但仍然会留下没有字幕的图像,并且已经在帖子中没有显示。

太平洋标准时间2013年10月23日下午2:20更新:

下面是我用来生成$my_media_string 在上述代码中:

/**
 * Function to lookup media creator fields and put them together.
 *
 * returns an html string with creator name and license name links.
 **/

function my_media_credit_string( $my_media_id ) {

    $my_name = get_post_meta( $my_media_id, \'my_creator_name\', true );
    $my_name_url = get_post_meta( $my_media_id, \'my_creator_url\', true );

    $my_creator = null;
    if( $my_name ) {
        if( $my_name_url ) {
            $my_creator = \' <a href="\' . $my_name_url . \'">\' . $my_name . \'</a>.\';  
        } else {
            $my_creator = \' \' . $my_name;
        }
    }

    return \'<span class="my-media-attr">Credit:\' . $my_creator . \'</span>\';

}
因此,第一个片段将得到以下内容:

    $my_media_string = $my_media_credit_string( $id );

结束

相关推荐

Define Folder to save Images

插件将图像保存到/PLUGINNAME/Images,但我希望它移动到/uploads插件中的代码如下define(\'WPR_URLPATH\', WP_PLUGIN_URL.\'/\'.plugin_basename( dirname(__FILE__) ).\'/\' ); $wpr_saveurl = WPR_URLPATH . \"images\"; $wpr_cache = ABSPATH . \"wp-content/plugins/\". plugin_basename(