web-dev-qa-db-fra.com

Ajouter un attribut au shortcode dynamiquement

Je cherche à ajouter un attribut à un shortcode utilisé de manière dynamique. Par exemple, disons que nous commençons par:

[shortcode-name]

J'aimerais ajouter la portion "attribut = xxx" au shortcode pour que cela ressemble effectivement à ceci:

[shortcode-name attribute=xxx]

Pour seulement le premier shortcode rencontré dans un post. Est-ce possible?

Merci!

1
Yazmin

Non testé (et ne peut pas tester pour le moment) mais vous devriez pouvoir ajouter des attributs avec un filtre ... quelque chose comme:

function test_sc($atts,$content) {
  // echo 'test_sc';
  $atts = shortcode_atts(
      array(
              'foo' => 'no foo',
              'bar' => 'default bar',
      ), 
      $atts, 
      'testsc' 
  );

  // var_dump($atts);

}
add_shortcode('testsc','test_sc');

function test_shortcode_att_add($atts) {
  # this filter should only run once (first use on page)
  remove_filter('shortcode_atts_testsc','test_shortcode_att_add');
  $atts['xxx'] = 'yyy';
  return $atts;
}
add_filter('shortcode_atts_testsc','test_shortcode_att_add');

Bien sûr, je ne sais pas exactement ce que vous essayez d’ajouter, ni le type de code de prise en charge qui en dépend.

3
s_ha_dum