web-dev-qa-db-fra.com

Puis-je créer un super plugin qui a aussi un thème?

Je travaille sur quelque chose qui nécessite un utilisateur d'avoir un plugin. Je veux seulement qu'ils aient à installer une chose. Puis-je avoir un plugin qui a un thème avec?

1
1.21 gigawatts

Vous pouvez toujours définir WP_USE_THEMES sur false et gérer vous-même toute la logique de modèle/d'affichage. (Mais, cela nécessite un accès aux utilisateurs wp-config ou index pour définir la constante, ce qui est hors de portée pour un plugin, bien que vous puissiez en faire une exigence d'installation).

En regardant template-loader.php , vous pourriez avoir un point de départ pour voir le type de logique dont vous auriez besoin pour réimplémenter.

Sinon, vous pouvez laisser vos utilisateurs choisir un thème comme solution de secours pour toutes les situations non couvertes par votre plugin et utiliser abondamment template_include pour choisir les modèles fournis par votre plugin dans certaines circonstances.

Directement à partir du codex :

add_filter( 'template_include', 'portfolio_page_template', 99 );

function portfolio_page_template( $template ) {

if ( is_page( 'portfolio' )  ) {
      $new_template = locate_template( array( 'portfolio-page-template.php' ) );
      if ( '' != $new_template ) {
        return $new_template ;
    }
  }

  return $template;
}

À première vue, je dirais que la deuxième approche est un peu plus solide, mais même dans ce cas, je mettrais plus de travail à dissocier le thème du plug-in pour donner à vous et à vos utilisateurs plus de flexibilité à l'avenir.

1
yivi