是否创建从插件文件夹处理的自定义附件模板?

时间:2013-03-18 作者:MikeGWP

我制作了一个自定义图像。我正在创建一个库插件的php。我的困境是,我目前必须有自己的自定义图像。php中的主题文件夹,以使其正常工作。有没有办法告诉Wordpress利用主题文件夹之外的模板文件来处理附件?

2 个回复
SO网友:fuxia

滤器attachment_template 并返回自定义路径。有关详细信息,请参阅wp-includes/template.php, 作用get_query_template().

示例代码:

add_filter( \'attachment_template\', function( $template )
{
    global $post;

    // inspect $post object to determine the correct template
    // and change the file path, then:
    return $template;
});

SO网友:Webloper

您可以使用此代码,它首先在主题文件夹中查找,如果找不到,则在插件文件夹中查找。

Sample code:

add_action( \'template_redirect\', \'weinvent_template_redirect\' );

/*Template fallback*/
function weinvent_template_redirect() {

    global $wp, $wp_query;
    $plugindir  =   dirname( __FILE__ );

    if( is_attachment() ) {
        $templatefilename   =   \'image.php\';
        if( file_exists( TEMPLATEPATH . \'/\' . $templatefilename ) )  {
            $return_template    =   TEMPLATEPATH . \'/\' . $templatefilename;    
        }   else    {
            $return_template    =   $plugindir . \'/templates/\' . $templatefilename;
        }

        do_theme_redirect( $return_template );
    }              

}

function do_theme_redirect( $url ) {

    global $post, $wp_query;
    if( have_posts() )  {
        include($url);
        die();
    }   else    {
        $wp_query->is_404   =   true;
    }
}

结束

相关推荐

images in wordpress themes

我正在用wordpress开发一个php主题。我想在网站上显示图像。所以我的问题是什么是最佳实践1) 使用数据库服务器的“图像”或“二进制数据”数据类型将图像本身存储在表中。或2) 将图像作为文件存储在文件系统中,并在表中创建一条记录,其中包含该图像的确切路径。。尽量少打扰数据库。