如何为WordPress附件自定义默认的HTML

时间:2010-11-19 作者:jeffkee

我正在使用Wordpress 3.0.1(目前最新版本),并围绕白板主题工作。

似乎对于附件(特别是图像),Wordpress会自动生成HTML,其外观如下:

<div id="attachment_12" class="wp-caption alignleft" style="width: 310px">
<a rel="shadowbox" href="http://new.michaellane.com/blog/wp-content/uploads/2010/11/areamapchange.png">
<img class="size-medium wp-image-12 " title="Area Map Improvments" src="http://new.michaellane.com/blog/wp-content/uploads/2010/11/areamapchange-300x179.png" alt="Area Map Improvments" width="300" height="179" />
</a>
<p class="wp-caption-text">Area Map Improvments</p>
</div>
我知道其中一些属性可以在编辑屏幕本身中更改,但是我想更改默认的HTML代码结构,以便插入其他标记、CSS类等。

我需要一种方法来实现这一点,而无需编辑wp内容文件夹之外的任何文件-换句话说,必须有一种基于模板的方法来做到这一点。。有什么想法吗?

2 个回复
SO网友:t31os

我想更改默认的HTML代码结构,以便插入其他标记

在上运行筛选器img_caption_shortcode, 你可以在这里的源代码中找到那个钩子。http://core.trac.wordpress.org/browser/tags/3.0.1/wp-includes/media.php#L720

示例

add_filter( \'img_caption_shortcode\', \'my_caption_html\', 10, 3 );
function my_caption_html( $current_html, $attr, $content ) {
    extract(shortcode_atts(array(
        \'id\'    => \'\',
        \'align\' => \'alignnone\',
        \'width\' => \'\',
        \'caption\' => \'\'
    ), $attr));
    if ( 1 > (int) $width || empty($caption) )
        return $content;

    if ( $id ) $id = \'id="\' . esc_attr($id) . \'" \';

    return \'<div \' . $id . \'class="wp-caption \' . esc_attr($align) . \'" style="width: \' . (10 + (int) $width) . \'px">\'
. do_shortcode( $content ) . \'<p class="wp-caption-text">\' . $caption . \'</p></div>\';
}
我基本上借用了原始函数中的大部分代码来在过滤器中使用,但它应该会为您提供一些可以在其上构建的内容。。。

希望有帮助:)

SO网友:fuxia

另请参见How can I add a URL field to the attachments window? 我在那里发布了一个小的演示插件。

结束

相关推荐

在没有CSS的情况下从管理菜单中删除不必要的文本

我正在寻找一种方法来删除默认worpdress元数据库中所有不必要的文本。最好我想确保内容不仅通过CSS隐藏,而且实际上从HTML中删除,这样它甚至不会显示在源代码中。我想删除的领域包括:单击右上角的“帮助”按钮并关联DIV/HTML/text时,我想删除与正在使用的主题和wordpress版本相关的文本以及“更改主题”按钮在底部的“页面属性”元框中,有文本“需要帮助?使用屏幕右上角的帮助选项卡”我希望删除此文本,在“摘录元数据库”下有一个文本,我希望删除任何其他文本,您可能也知道如何删除以清理wordp