web-dev-qa-db-fra.com

Ajouter du contenu à la page sans codes courts

Le site sur lequel je travaille comporte quelques pages qui doivent être remplies avec différents éléments de contenu tels que des combinaisons d’images de texte, des curseurs, des listes de contenu, etc. Le client doit réorganiser ces blocs de contenu, en ajouter de nouveaux et etc. Chaque bloc de contenu serait un élément de contenu (article ou type d'article personnalisé) ou une liste de contenu.

D'après ce que j'ai compris, j'ai 2 options:

  1. Utilisez un plugin complexe pour glisser-déposer du contenu prédéfini
  2. Utiliser des codes courts

En développement, je préférerais ne pas laisser toute la logique à un plugin tiers. Il semble que je perdrais une partie du contrôle sur les modèles?

Mais les codes courts ne semblent pas être une solution acceptable pour un client, car ils sont trop techniques.

Aucune suggestion? Y a-t-il une meilleure pratique?

5
sven

J'ai évalué les différentes options et suis allé avec un plugin "Page Builder". Bien que les aspects techniques ne soient pas géniaux (par exemple, persistance des données: tout le contenu est sérialisé), c’est la seule option qui me donne suffisamment de flexibilité et de confort pour que le client puisse modifier la structure de chaque page.

Migrer de dev à scène pour vivre était également une douleur due à la sérialisation et seulement possible avec encore un autre plugin (duplicateur).

Merci à tous pour la contribution!

0
sven

Bien que les codes abrégés soient liés à des fonctions, je pense que vous pouvez les utiliser efficacement en combinaison avec des modèles et une metabox pour leurs données d'entrée. par exemple:

add_shortcode('content-box','content_box_function');
function content_box_function() {
    global $post;
    $title = get_post_meta($post->ID,'_content_box_title',true);
    $content = get_post_meta($post->ID,'_content_box_content',true);
    get_template_part('templates/content','box');
}

/ wp-content/themes / thème-slug / templates/content-box.php

<div class="content-box-container">
    <div class="content-box">
         <h3 class="content-box-title"><?php echo $title; ?></h3>
         <div class="content-box-content"><?php echo $content; ?></div>
    </div>
</div>

Ajoutez ensuite une metabox à l'écran de post-écriture pour permettre à l'utilisateur de sélectionner/définir les méta-valeurs à utiliser avec les clés que vous utilisez pour chaque shortcode de bloc de contenu.

Vous permet de commander/de placer le shortcode n'importe où dans le contenu, tout en conservant le contenu souhaité, mais les modèles (et le style correspondant) pourraient déjà être définis pour les types de blocs de contenu prédéfinis.

1
majick

Vous pouvez envisager d'utiliser les modèles de page. Pour l'exemple, je vais utiliser une page de contact. "contact-page.php"

Vous pouvez ensuite écrire le code dont vous avez besoin pour le modèle. Pour conserver la flexibilité, recherchez comment utiliser le Customizer (si vous ne le connaissez pas) et utilisez-le dans la page de modèle pour permettre à l'administrateur de modifier le contenu de la page sans avoir à regarder le code. C'est comme ça que j'ai fait mes modèles.

1
Chess Byte

C'est une question intéressante, mais un peu trop large pour un modèle de questions-réponses. Voici ce que je ferais:

  1. Créer un type d'article personnalisé, chaque article étant un bloc de contenu
  2. Créez un deuxième type de publication personnalisé pour les pages assemblées à partir de blocs de code. Au lieu d'un champ de contenu, créez dix champs déroulants (ou plus s'il y a plus de blocs possibles sur une page). Pour les options select du menu déroulant, prenez le titre de toutes les publications du premier type de publication personnalisé. De cette manière, tout nouveau bloc de contenu sera automatiquement disponible pour Assembly.
  3. Créez un modèle pour le second type de publication, qui parcourt tous les champs déroulants et assemble le contenu des premières publications personnalisées.
1
cjbj