2

I am making changes to an existing website that is based on WordPress (some javascript add-ins and a few PHP scripts for Ajax purposes).

Is their any proper directory that I should place all these files? I started off putting them in a folder in the root directory called assets, but then decided maybe they should go with the rest of the Wordpress template and javascripts files? Or should I keep them out of the wp- directories, and simply keep them in the assets folder?

I know its a trivial question, but I like doing things right- having them in directories that make sense.

4

3 に答える 3

1

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

多くの画像ギャラリー プラグインは、このアプローチを使用してカスタム メディア ライブラリを保存します。

もう 1 つの用途は、カスタム ユーザー テーマがこのフォルダーに配置されるモバイル テーマです。プラグインの更新時に失われないようにします (プラグインまたはテーマ フォルダー内のすべてがアップグレード時に置き換えられるため)。

于 2013-05-04T13:56:39.410 に答える
1

プレゼンテーション関連の場合は、対応するテーマ フォルダに配置する必要があると思います。それが機能である場合は、プラグイン内にラップしてプラグイン フォルダーに配置することを検討してください。

この変更を抽象化して他のテーマで利用できるようにすることを気にしない場合は、単にテーマ フォルダー内に追加します。現在のテーマ フォルダーへの Web パスを取得する、またはそのフォルダーから js を含める WP ヘルパー関数があります。

于 2013-05-03T08:59:14.310 に答える
1

すべての JavaScript をテーマのディレクトリ内のフォルダ、つまりwp-content/themename/.

Ajax に関しては、WordPress では実装が異なります。actionajax リクエストで呼び出されるデータ変数を追加し、それをfunctions.phpファイル内の関数にフックする必要があります。ajax URL はPHPでwp-admin/admin-ajax.php利用できるはずです。admin_url( 'admin-ajax.php' )

例については、プラグインの AJAX を参照してください。

于 2013-05-03T09:12:46.730 に答える