web-dev-qa-db-fra.com

Est-il possible de changer le thème d'un blog avec la commande XML-RPC? (et si oui comment?)

Je n'arrive pas à trouver une telle option listée ici:

http://codex.wordpress.org/XML-RPC_wp#wp.setOptions

Est-ce qu'il existe?

Merci.

2
Tal Galili

Non, cette option n'existe pas actuellement via XML-RPC. Cependant, vous pouvez toujours créer votre propre méthode dans un plugin et la relier à XML-RPC.


Mettre à jour

Il y a un prochain projet de Google Summer of Code qui étendra l'interface XML-RPC pour permettre la manipulation directe de thèmes, afin que je ne laisse pas le code de mettre cela en œuvre ici. Mais gardez les yeux et les oreilles ouverts lorsque de nouveaux codes (modifications principales et/ou plugins) commencent à être publiés cet été.

En attendant, je proposerai une alternative. L'ensemble d'options que vous pouvez afficher et définir via XML-RPC peut être filtré. En gros, vous pouvez dire au système de vous donner plus d’informations qu’il ne le ferait normalement.

Ce que vous pouvez déjà obtenir (les options en gras sont en lecture seule ... vous ne pouvez pas les changer avec wp.setOptions mais vous pouvez les récupérer avec wp.getOptions):

  • nom_logiciel
  • version_logicielle
  • blog_url
  • content_width
  • fuseau horaire
  • titre du Blog
  • blog_tagline
  • format de date
  • format de l'heure
  • users_can_register
  • thumbnail_size_w
  • thumbnail_size_h
  • vignette_crop
  • medium_size_w
  • taille_moyenne_h
  • large_size_w
  • large_size_h

Cette liste (en fait, un tableau avec d'autres paramètres), est transmise via le filtre xmlrpc_blog_options, ce qui signifie que vous pouvez ajouter et supprimer tout ce que vous voulez dans cette liste. Pour activer l'extraction du thème actuel par wp.getOptions et la modification du thème par wp.setOptions, vous devez utiliser les éléments suivants:

function allow_xmlrpc_theme_changes( $xmlrpcoptions ) {
    $xmlrpcoptions['active-theme'] = array(
        'desc'            => __( 'Active site theme' ),
        'readonly'        => false,
        'option'          => 'template'
    );

    $xmlrpcoptions['active-stylesheet'] = array(
        'desc'            => __( 'Active site stylesheet' ),
        'readonly'        => false,
        'option'          => 'stylesheet'
    );

    return $xmlrpcoptions
}

add_filter( 'xmlrpc_blog_options', 'allow_xmlrpc_theme_changes' );

Cela ajoute deux champs que vous pouvez définir: "thème actif" et "feuille de style active".

N'oubliez pas que vous définissez ces options de la même manière que si vous utilisiez update_option(). Ainsi, vérifiez le codex avant de faire quoi que ce soit.

2
EAMann

Je suis intéressé par la même chose. J'ai mis en place un plugin qui étend XML-RPC à la fonction wp_get_themes et à la fonction switch_theme. Le plugin est sur Github et j'ai un guide virtuel sur mon blog .

1
dailyinvention