11
votes

Comment insérer un code abrégé dans le menu WordPress

J'ai fait un élément de menu avec ce code. L'élément de menu apparaît mais la sortie du code abrégé n'est pas là. Y a-t-il quelque chose que je peux ajouter ou une méthode différente qui le fera. J'ai également ajouté dans l'espoir que cela pourrait aider.

/* Nav Menu */
function add_profile_link_to_nav(){ 
 if ( is_user_logged_in() ) { ?> 

<ul> 
  <li class="menu-item"id="one"> <a href="http://example.com/members/">All  Members</a>
  <ul class="sub-menu"> 
      <li class="menu-item"><?php echo custom_execute_shortcode(); ?> </li>
  </ul> 
 </li>
</ul>    <!--end menu--->
<?php } 
}
add_action( "wp_nav_items","add_profile_link_to_nav" );

function custom_execute_shortcode() {
$myfunction= '[my shortcode"]';
$myfunction_parsed = do_shortcode($myfunction);
return $myfunction_parsed;
}


0 commentaires

3 Réponses :


26
votes

@tim Ce code fonctionnera

le mettre en fonctions.php fichier xxx


4 commentaires

@Tim Vous pouvez ajouter des arguments optionnels pour ce code, je ne vous donne que le basique


Merci Usama j'apprécie la réponse


Note à quiconque venant ici de Google, ce totalement les menus dans des versions modernes de WordPress.


@Johnsmith Totalement quoi?



15
votes

Vous ne pouvez pas utiliser les codes courts directement dans l'URL du menu sur la page de menu, car les supports sont dépouillés. Mais vous pouvez utiliser des espaces réservés comme ceci: #profile_link # .

avec le code suivant dans Fonctions.php , vous pouvez créer un élément de menu personnalisé avec l'URL #profile_link # , et il remplacera celui-ci avec votre code abrégé. xxx

Vous devez simplement définir 'shortcode' dans le $ Etainterners Array, et éventuellement 'ATS' et 'Content' .

Par exemple, si votre code abrégé est comme ceci: xxx

vous mettriez à jour: xxx


Notez que je n'utilise pas do_shortcode () car il s'agit d'une fonction intensive de ressource et n'est pas le bon outil pour le travail dans ce cas.


8 commentaires

WOW qui a effectivement travaillé, cherchait une longue période de temps pour cela. Merci beaucoup J.D


@ J.d. - Bonjour, j'essaie d'ajouter ce shortcode dans votre code, mais il ne fonctionnera pas ([IP: GB] 020 7267 5222 [/ IP]). Pouvez-vous m'aider s'il vous plaît


@CablONDON - Pour cela, vous pouvez utiliser do_shortcode ('[IP: GB] 020 7267 5222 [/ IP]'); ou de préférence call_user_func ($ shortcode_tags ['my_shortcode], tableau (': GB', '020 7267 5222', 'IP'); .


@ J.d. Bonjour, comment puis-je ajouter mon code abrégé à votre réponse mise à jour, ceci est mon identifiant de tarification [ID de tarification facile à prix = "4227"] Pouvez-vous m'aider, s'il vous plaît?


@emresancaktar modifier la ligne d $ ATTS = tableau () à $ ATTS = tableau ('id' => 4227); . Je vais mettre à jour la réponse pour le rendre plus clair.


@ J.d. Merci à vous de répondre, mon shortCode est [ID de tarification facile à tarification = "4227"] et j'ai changé votre code en $ shortcode = "Table de tarification facile"; $ ATTS = Array ('ID' => 4227); et j'ai créé un lien personnalisé quelle url est # profil_link # pour le test, mais cela ne fonctionne pas. Il n'y a aucune erreur ni aucun avertissement, mais rien ne se passe


BTW, c'est mon lien de questions que j'ai posé il y a 2 jours et a déclaré Bounty 50 Rep, mais les réponses ne fonctionnent pas. Stackoverflow.com/Questtions/39612560/... < / a>


Je ne pense pas que cette solution fonctionne avec des versions WP plus récentes. J'ai fini par avoir à utiliser Codes courts dans les menus plugin.



1
votes

Activer la description de la page de menu, coller à la description Textarea du lien Vos courts-coureurs, dans Fonctions.php Ajouter le code suivant: XXX


1 commentaires

Je suppose que cela ne fonctionnera que si votre thème prend en charge la description dans le menu?