web-dev-qa-db-ja.com

2種類の設定 WP - 疑い

私はワードプレスプラグイン開発のいくつかの基本を学ぶことを試みていました、そして私は2つのタイプの設定につまずきました。

1

add_settings_field(
    'custom_title',
    esc_html__('Custom Title', 'myplugin'),
    'myplugin_callback_field_text',
    'myplugin', 
    'myplugin_section_login', 
    [ 'id' => 'custom_title', 'label' => esc_html__('Custom title attribute for the logo link', 'myplugin') ]
);

add_settings_field(
    'custom_style',
    esc_html__('Custom Style', 'myplugin'),
    'myplugin_callback_field_radio',
    'myplugin', 
    'myplugin_section_login', 
    [ 'id' => 'custom_style', 'label' => esc_html__('Custom CSS for the Login screen', 'myplugin') ]
);

add_settings_field(
    'custom_message',
    esc_html__('Custom Message', 'myplugin'),
    'myplugin_callback_field_textarea',
    'myplugin', 
    'myplugin_section_login', 
    [ 'id' => 'custom_message', 'label' => esc_html__('Custom text and/or markup', 'myplugin') ]
);

add_settings_field(
    'custom_footer',
    esc_html__('Custom Footer', 'myplugin'),
    'myplugin_callback_field_text',
    'myplugin', 
    'myplugin_section_admin', 
    [ 'id' => 'custom_footer', 'label' => esc_html__('Custom footer text', 'myplugin') ]
);

add_settings_field(
    'custom_toolbar',
    esc_html__('Custom Toolbar', 'myplugin'),
    'myplugin_callback_field_checkbox',
    'myplugin', 
    'myplugin_section_admin', 
    [ 'id' => 'custom_toolbar', 'label' => esc_html__('Remove new post and comment links from the Toolbar', 'myplugin') ]
);

2

そして他のプラグインでは、このようになっています。

function paytm_settings_list(){
    $settings = array(
        array(
            'display' => 'Merchant ID',
            'name'    => 'paytm_merchant_id',
            'value'   => '',
            'type'    => 'textbox',
            'hint'    => 'Merchant ID'
        ),
        array(
            'display' => 'Merchant Key',
            'name'    => 'paytm_merchant_key',
            'value'   => '',
            'type'    => 'textbox',
            'hint'    => 'Merchant key'
        ),
        array(
            'display' => 'Website',
            'name'    => 'paytm_website',
            'value'   => '',
            'type'    => 'textbox',
            'hint'    => 'Website'
        ),
        array(
            'display' => 'Industry Type ID',
            'name'    => 'paytm_industry_type_id', 
            'value'   => '',
            'type'    => 'textbox',
            'hint'    => 'Industry Type ID'
        ),
        array(
            'display' => 'Channel ID',
            'name'    => 'paytm_channel_id',
            'value'   => '',
            'type'    => 'textbox',
            'hint'    => 'Channel ID e.g. WEB/WAP'
        ),
        array(
            'display' => 'Mode',
            'name'    => 'paytm_mode',
            'value'   => 'TEST',
            'values'  => array('TEST'=>'TEST','LIVE'=>'LIVE'),
            'type'    => 'select',
            'hint'    => 'Change the mode of the payments'
        ),

どちらが正しい方法なのか、少し混乱していますか。それとも上記の誰かが時代遅れであれば?

私は私と一緒に耐えてください新しいコーナーです。ありがとうRicha sharma

1
Richa Sharma

2番目の例は別の種類の設定ではありません。プラグインがおそらくコード内の別の場所でsettingsに変換するデータの配列です。このコードだけでは、どのタイプの設定を使用するのか、またはどのように設定するのか正確にはわかりません。

actualの2種類の設定は、 設定APIカスタマイズAPI です。最初のコードブロックはSettings APIを使用しています。

設定APIは、バックエンド管理者設定ページに使用する必要があります。フロントエンドに表示されるものの設定を追加するには、カスタマイズAPIを使用する必要があります。

特にテーマオプションについては、wordpress.orgテーマリポジトリは設定APIではなくカスタマイズAPIの使用を必要とします。

考慮すべきもう1つのことは、サードパーティプラグインに設定を追加するための独自のAPIがあるかもしれないということです。たとえば、WooCommerceには、WooCommerce設定ページに設定を追加するための独自の方法があります(ただし、実際には設定APIのみです)。 2番目のコードブロックは、WooCommerce APIで使用するためのものです。

0
Jacob Peattie