其他自定义页眉图像

时间:2012-02-16 作者:grm

有没有人见过向主题添加新header\\u图像的方法?我需要在一个主题中添加两个可配置的图像。无论是作为新的“标题”管理主题菜单添加,还是添加到现有的外观->标题菜单,都无关紧要。

我对插件开发有点陌生,所以非常感谢在正确方向上的任何帮助。我真的找不到任何可以附加的挂钩或动作。

类似this request

2 个回复
SO网友:fuxia

参见TwentyEleven了解想法:它使用register_default_headers() 添加新标题图像。在插件或主题中,只需添加:

add_action( \'after_setup_theme\', \'wpse_42529_add_header_images\' );

function wpse_42529_add_header_images()
{
    register_default_headers( 
        array(
            \'a_short_name\' => array(
            \'url\' => \'%s/images/headers/a_short_name.jpg\',
            \'thumbnail_url\' => \'%s/images/headers/a_short_name-thumbnail.jpg\',
            \'description\' => __( \'Wheel\', \'twentyeleven\' )
        ),
        \'another_image\' => array(
            \'url\' => \'%s/images/headers/another_image.jpg\',
            \'thumbnail_url\' => \'%s/images/headers/another_image-thumbnail.jpg\',
            \'description\' => __( \'Shore\', \'twentyeleven\' )
        )
        )
    );
}
The%s 将替换为样式表目录URI。你不必使用它。您可以使用plugin_dir_url( __FILE__ ) 而不是%s.

你可以打电话register_default_headers() 多次,它就像add_default_headers().

更新以添加新的page 对于类似于自定义标头的自定义图像,应扩展该类Custom_Image_Header 在主题选项页面中。But 这个班级正在重建中right now – 基于此编写未来验证代码几乎是不可能的。我会等待WordPress 3.4并在更稳定的基础上构建代码<嗯……我会的,因为我可能也需要它。

另一种方法:复制和修改当前类,而不是扩展它。

SO网友:Brad Dalton

这已经在这里得到了回答:

如果查看“二十一”主题和其他默认主题,如果特征图像的宽度与默认标题完全相同,则可以将其用作自定义标题图像。

    <?php
        // Check to see if the header image has been removed
        $header_image = get_header_image();
        if ( $header_image ) :
            // Compatibility with versions of WordPress prior to 3.4.
            if ( function_exists( \'get_custom_header\' ) ) {
                /*
                 * We need to figure out what the minimum width should be for our featured image.
                 * This result would be the suggested width if the theme were to implement flexible widths.
                 */
                $header_image_width = get_theme_support( \'custom-header\', \'width\' );
            } else {
                $header_image_width = HEADER_IMAGE_WIDTH;
            }
            ?>
    <a href="<?php echo esc_url( home_url( \'/\' ) ); ?>">
        <?php
            /*
             * The header image.
             * Check if this is a post or page, if it has a thumbnail, and if it\'s a big one
             */
            if ( is_singular() && has_post_thumbnail( $post->ID ) &&
                    ( /* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), array( $header_image_width, $header_image_width ) ) ) &&
                    $image[1] >= $header_image_width ) :
                // Houston, we have a new header image!
                echo get_the_post_thumbnail( $post->ID, \'post-thumbnail\' );
            else :
                // Compatibility with versions of WordPress prior to 3.4.
                if ( function_exists( \'get_custom_header\' ) ) {
                    $header_image_width  = get_custom_header()->width;
                    $header_image_height = get_custom_header()->height;
                } else {
                    $header_image_width  = HEADER_IMAGE_WIDTH;
                    $header_image_height = HEADER_IMAGE_HEIGHT;
                }
                ?>
            <img src="<?php header_image(); ?>" width="<?php echo $header_image_width; ?>" height="<?php echo $header_image_height; ?>" alt="" />
        <?php endif; // end check for featured image or standard header ?>
    </a>
    <?php endif; // end check for removed header image ?>

结束

相关推荐