在Wordpress安装中放置额外文件的最佳位置是哪里?


Where is the best spot to place extra files on a Wordpress install?

我正在改变一个现有的基于WordPress的网站(一些javascript插件和一些用于Ajax目的的PHP脚本)。

是否有合适的目录,我应该把所有这些文件?我开始把它们放在根目录下的一个名为assets的文件夹中,但后来决定也许它们应该与其他Wordpress模板和javascript文件一起使用?或者我应该将它们从wp-目录中删除,并简单地将它们保存在assets文件夹中?

我知道这是一个微不足道的问题,但我喜欢把事情做对——把它们放在有意义的目录中。

你可以把你所有的javascript保存在一个文件夹在你的主题的目录,即wp-content/themename/

关于Ajax,它在WordPress中的实现是不同的。您必须在ajax请求中添加一个名为action的数据变量,然后将其与functions.php文件中的函数挂钩。您的ajax url应该是wp-admin/admin-ajax.php,通过admin_url( 'admin-ajax.php' )在PHP中可用。

>

如果它是与演示相关的,我认为你应该把它放在相应的主题文件夹中。如果它是一个功能,你可以考虑把它包装在一个插件中,并把它放在一个插件文件夹中。

如果你不关心抽象这个变化,使其可用于其他主题,那么我将只是简单地添加到主题文件夹。您可以使用WP辅助函数来获取当前主题文件夹的web路径,或者从该文件夹中包含js。

在WordPress生态系统中适当的位置是wp-content文件夹,因为这是您在进行WP升级,恢复或迁移时保留的文件夹。

在该文件夹中,它可以是主题(/themes),插件(/plugins),上传文件(/uploads)的一部分,或者,如果情况需要,自定义文件夹(/my-custom-content)。

/wp-content/themes/your-theme

这里,所有表示相关的代码。将一般功能代码放在主题的functions.php中是一个常见的错误。在此文件中放置自定义函数之前要问的第一个问题是:
如果我改变我的主题,我需要这个函数吗?

参见:在哪里放置我的代码:plugin或functions.php?

/wp-content/plugins/your-plugin

假设你需要排队一些CSS或Javascript文件,这应该发生在任何主题被使用。
下面的示例插件将在Map页面和首页加载SWFObject(与WP捆绑),因为两者都包含SWF Flash嵌入。并且,在网站的其余部分,它将从Google CDN加载WebFont Loader和从插件文件夹中加载CSS文件。

<?php
/** Plugin Name: My Enqueue Plugin */
add_action( 'wp_enqueue_scripts', 'enqueue_so_16354990' );
function enqueue_so_16354990() {
    global $post;
    if( $post->post_name == 'map' || is_front_page() ) {
        // Enqueue bundled script
        wp_enqueue_script( 'swfobject' );
    }
    else {
        // Enqueue from external location
        wp_enqueue_script( 
            'my-web-font', 
            '//ajax.googleapis.com/ajax/libs/webfont/1.4.2/webfont.js', 
            array( 'jquery' ), // Dependencies
            time(), // Version, use time to prevent caching
            true // Enqueue on footer
        );  
        // Enqueue from within plugin directory 
        wp_enqueue_style( 'my-css', plugins_url( 'css/my-plugin.css', __FILE__) );      
    }   
}

/wp-content/uploads

在这里,你的主题或插件应该放置所有用户上传的内容,这样就可以通过WP媒体库屏幕进行管理。并且内容应该在任何主题交换或插件停用时都有效。

/wp-content/custom-folder

许多图片库插件使用这种方法来存储他们的自定义媒体库。

另一个用途是移动主题,自定义用户主题放在这个文件夹中,所以不要在插件更新时丢失它(因为插件或主题文件夹中的所有内容都在升级时被替换)。