Hallo ;),
ich möchte mit dem Shortcode [cresta-social-share] die Social Share Widget in meinem Menu anzeigen, allerdings lässt sich das nicht so einfach bewältigen. Als ich nach einer Lösung gegooglet habe, bin auf folgendes gestoßen:
PHP
add_filter( 'wp_nav_menu_objects', 'generate_navigation_shortcode' );
function generate_navigation_shortcode( $menu_items ) {
foreach ( $menu_items as $menu_item ) {
if ( '#download_link#' == $menu_item->url ) {
global $shortcode_tags;
if ( isset( $shortcode_tags['download_link'] ) ) {
// Or do_shortcode(), if you must.
$menu_item->url = call_user_func( $shortcode_tags['download_link'] );
}
}
}
return $menu_items;
}
Alles anzeigen
Es funktioniert nur nicht so wie es will. So habe ich es eingebaut:
PHP
<!-- #CatNav -->
<div id="catnav" class="secondary">
<?php wp_nav_menu(array('theme_location' => 'mainNav','container'=> '','menu_id'=> 'catmenu','menu_class'=> 'catnav container clearfix','fallback_cb' => 'false','depth' => 3)); add_filter( 'wp_nav_menu_objects', 'generate_navigation_shortcode' );
function generate_navigation_shortcode( $menu_items ) {
foreach ( $menu_items as $menu_item ) {
if ( '#[cresta-social-share]#' == $menu_item->url ) {
global $shortcode_tags;
if ( isset( $shortcode_tags['[cresta-social-share]'] ) ) {
// Or do_shortcode(), if you must.
$menu_item->url = call_user_func( $shortcode_tags['[cresta-social-share]'] );
}
}
}
return $menu_items;
}?>
</div>
<!-- /#CatNav -->
<?php } ?>
Alles anzeigen
Das Problem ist bloß, dass WP in dem URL-Feld meinen Shortcode auseinander nimmt und einen Link draus macht:/. Daher habe ich gedacht, dass man den Shortcode in das HTML-Attribut title- Feld einbauen könnte, da er dort unverändert bleibt. Jetzt weiß ich bloß nicht wie dieses Feld im PHP heißt und ob ich die url einfach ersetzen kann.
Meine Seite: http://progames.bplaced.net/
Ich würde mich über Hilfe freuen;)