Je convertis un modèle Bootstrap en un thème WordPress.

Pour les champs personnalisés, j'utilise le plugin Champs personnalisés avancés . Le problème est que lorsque j'essaie d'ajouter une image à l'aide de Champs personnalisés avancés, j'obtiens l'erreur suivante :

Avertissement : offset de chaîne 'url' illégal dans C:\wamp64\www\my-site\wordpress\wp-content\themes\bootstraptowordpress\page-home.php à la ligne 31

Cependant, lorsque j'ajoute du texte via ce plugin, il n'affiche aucune erreur.

Je n'ai pas d'autres plugins installés à part ACF.

Voici mon code:

$home_page_logo = get_field('home_page_logo');

<div class="front_logo">

   <?php if( !empty($home_page_logo)): ?>

      <img src="<?php echo $home_page_logo['url']; ?>" alt="<?php  echo $home_page_logo['alt']; ?>" />

   <?php endif; ?>

 </div>
3
Yaser Basravi 19 juin 2016 à 15:37

2 réponses

Meilleure réponse

Il existe trois manières de renvoyer un champ d'image dans ACF (tableau, URL ou ID). Il semble que votre champ soit configuré pour renvoyer l'URL - qui est renvoyée sous forme de chaîne.

Par conséquent, vous devez y accéder comme ceci:

<?php echo $home_page_logo; ?>

Au lieu de cela:

<?php echo $home_page_logo['url']; ?>

Alternativement, vous pouvez modifier la configuration du champ dans votre administrateur WordPress et le configurer pour renvoyer un tableau d'images au lieu de l'URL :

enter image description here

S'il est défini sur l'option de tableau, vous pouvez accéder au url comme vous le faites actuellement, ainsi qu'accéder à une gamme d'autres données pertinentes pour l'image (telles que sa largeur et sa hauteur, l'ID de pièce jointe WordPress, la légende si saisie, etc.)

4
Tim Malone 20 juin 2016 à 02:35

Il est préférable d'utiliser le plugin de formes de gravité. Vous pouvez télécharger ici : Plugin WordPress Rocket Genius Gravity Forms

Mais si vous voulez corriger votre code, essayez de tester s'il s'agit d'un tableau :

<?php
$yes = array('this', 'is', 'an array');

echo is_array($yes) ? 'Array' : 'not an Array';
echo "\n";

$no = 'this is a string';

echo is_array($no) ? 'Array' : 'not an Array';
?>

http://php.net/manual/function.is-array.php

-5
Hermes Alves 19 juin 2016 à 16:55