2

我正在对基于 WordPress 的现有网站进行更改(一些 javascript 插件和一些用于 Ajax 的 PHP 脚本)。

他们是我应该放置所有这些文件的任何合适的目录吗?我开始将它们放在名为 的根目录中的文件夹中assets,但后来决定也许它们应该与 Wordpress 模板和 javascripts 文件的其余部分一起使用?或者我应该将它们保留在wp-目录之外,而只是将它们保留在assets文件夹中?

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

4

3 回答 3

1

如果是演示相关的,我相信你应该把它放在相应的主题文件夹中。如果它是一项功能,您可能需要考虑将其包装在插件中并将其放置在插件文件夹中。

如果您不关心抽象此更改并将其提供给其他主题,那么我只需将其添加到主题文件夹中即可。您有 WP 辅助函数来获取当前主题文件夹的 Web 路径,或包含该文件夹中的 js。

于 2013-05-03T08:59:14.310 回答
1

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

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

阅读插件中的 AJAX 以获取示例。

于 2013-05-03T09:12:46.730 回答
1

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

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

/wp-content/themes/your-theme

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

请参阅:将我的代码放在哪里:插件或functions.php?

/wp-content/plugins/your-plugin

假设您需要将一些 CSS 或 Javascript 文件排入队列,无论使用什么主题,这都应该发生。
以下示例插件将在页面地图和首页中加载 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

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

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

于 2013-05-04T13:56:39.410 回答