página de configuración 'Global' para el complemento multisitio

22

Estoy trabajando en un complemento que se instalará en una instancia de varios sitios.

¿Cómo creo una única página de configuración que solo sea visible en el nivel de "Administrador de red"? La mayoría de las guías que he visto están relacionadas con un complemento de nivel de blog estándar. Cualquier enlace a la información sería útil, de lo contrario acabaré pasando por las etiquetas de todo el sitio para ver cómo se hace allí.

[Actualización]

Parece que sitewide_tags usa add_site_option , get_site_option y update_site_option , y estas funciones usan wp_sitemeta. Sin embargo, por lo que puedo ver, no hay soporte para register_setting, add_setting, etc., así que tienes que obtener y configurar tus opciones manualmente.

    
pregunta anu 26.05.2011 - 14:12

3 respuestas

5

Como referencia

Para crear una configuración de red o global, necesita hacer lo siguiente

  • Añadir una página de configuración

    add_submenu_page( 'settings.php'... # cf options.php for blog level'
    
  • Añadir una opción global

    add_site_option($key,$value)
    
  • Actualizar una opción global

    update_site_option($key,$value)
    
  • Obtener una opción de sitio

    get_site_option($key)
    

La configuración global se guarda en la tabla sitemeta (la configuración individual del blog se guarda en la tabla <blog_id>_options

  • Creo que la API de configuración funciona a nivel de blog, así que usa la tabla de opciones, no sitemeta. Por lo tanto, no puede usar grupos de opciones y similares en el nivel de red ( comente si me equivoco )
respondido por el anu 31.05.2011 - 12:13
0

Bueno, enfrenté la misma necesidad recientemente, pero tampoco sabía la respuesta. Si bien no es una respuesta a su pregunta explícitamente, una alternativa es simplemente crear las páginas de opciones en las opciones del blog 'principal' y verificar si está habilitado el sitio múltiple.

No es la forma ideal, pero si (como yo) estuvieras creando un complemento interno para tu propio uso, es viable. También tiene la ventaja de que todas las funciones habituales para las páginas de administración están disponibles, que aún no están en el contexto de la página de administración de la red global.

    
respondido por el DavidJ 29.06.2011 - 19:53
0

Cuando use add_submenu_page() , add_menu_page() , etc. y espere que las páginas de configuración aparezcan en su panel de control multisitio, considere usar network_admin_menu hook en lugar de admin_menu

Ejemplo:

add_action( 'network_admin_menu', 'network_settings_page' );
function network_settings_page(){
    add_submenu_page(

        ...
    )
}

Para guardar la configuración, puedes usar network_admin_edit_{ACTION} action hook.

Referencia: enlace

    
respondido por el Misha Rudrastyh 14.09.2018 - 10:28

Lea otras preguntas en las etiquetas