Seite 1 von 1

Syntax-Problem [shortcode] mit Wordpress

Verfasst: 12.08.2010, 08:20
von bydlo
Moin Moin ,
ich habe gerade ein Syntax-Problem bei dem ich mal Hilfe bräuchte:

Habe folgenden Shortcode gebastelt:

Code: Alles auswählen

function owner($atts, $content = null) {
 return '<a target="_blank" title="Foobar" href="http&#58;//www.' . do_shortcode&#40;$content&#41; . '"><img alt="Foobar" src="pfad-zum-bild"></a>';
&#125;
add_shortcode&#40;'eigentuemer', 'owner'&#41;;
Funktioniert auch.

Problem:
Dort wo nun "foobar" steht soll der Titel des Posts ausgegeben werden
Meine Versuche mit <?php the_title(); ?> (oder auch the_titleattribute) scheiterten bisher alle an meinen mangelnden PHP Kenntnissen.
Ich habe sowohl das:
Code:

Code: Alles auswählen

return '<a target="_blank" title="<?php the_title&#40;&#41;; ?>" href="
als auch viele andere Versionen versucht.

Aber entweder es gab Fehlermeldungen oder der Titel wurden nicht innerhalb der Attribute ausgegeben sondern direkt im Content.


Kann mir mal jemand sagen wie das geschrieben gehört?
Gruss axel

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Verfasst: 12.08.2010, 09:41
von slider
Probiers mal so:

Code: Alles auswählen

function owner&#40;$atts, $content = null&#41; &#123;
 return '<a target="_blank" title="Foobar" href="http&#58;//www.' . do_shortcode&#40;$content&#41; . '"><img alt="'.the_title&#40;&#41;.'" src="pfad-zum-bild"></a>';
&#125;
add_shortcode&#40;'eigentuemer', 'owner'&#41;;

Verfasst: 12.08.2010, 10:04
von bydlo
hallo slider,
in der Richtung hatte ich auch schon erfolglos geforscht.
Ergebnis deines Vorschlags:
Ausgabe des Shortcodes als Text im Content

Hättest du noch eine andere Idee?

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 12.08.2010, 10:27
von empty
RTFM. ;-)

Usage

<?php the_title( $before, $after, $echo ); ?>
Parameters

$before (string) Text to place before the title. Defaults to ''.
$after (string) Text to place after the title. Defaults to ''.
$echo (Boolean) Display the title (true) or return it for use in PHP (false). Defaults to true.

also eher: the_title('','',false)

Verfasst: 12.08.2010, 10:48
von bydlo
i already read the fucking manual.
but did i mention that php is a fucking strange,weird foreign alien language to me? :-)

Kann mir das mal jemand "C&P"-tauglich übersetzen?

Verfasst: 12.08.2010, 10:51
von empty
bydlo hat geschrieben: Kann mir das mal jemand "C&P"-tauglich übersetzen?

Code: Alles auswählen

function owner&#40;$atts, $content = null&#41; &#123;
 return '<a target="_blank" title="Foobar" href="http&#58;//www.' . do_shortcode&#40;$content&#41; . '"><img alt="'.the_title&#40;'','',false&#41;.'" src="pfad-zum-bild"></a>';
&#125;
add_shortcode&#40;'eigentuemer', 'owner'&#41;;
Besser so?

Re: Syntax-Problem [shortcode] mit Wordpress

Verfasst: 12.08.2010, 11:18
von SloMo
bydlo hat geschrieben:

Code: Alles auswählen

return '<a target="_blank" title="<?php the_title&#40;&#41;; ?>" href="
Ich versuche Dir mal die Grundlagen zu erklären.

Du bist bereits im PHP-Context, kannst also <?php und ?> weglassen. Statt dessen willst Du die Ausgabe von the_title() in den String einfügen. Strings werden mit . (Punkt) zusammengefügt. Also:

return '<a target="_blank" title="' . the_title() . '" href=" //usw...

Die Teilstrings, die zusammengefügt werden, sind farblich markiert. Die Punkte habe ich fett gemacht.

Beachte die einfachen Anführungszeichen hinter title=" und vor " href, die sind wichtig, damit die Teilstrings richtig geöffnet und geschlossen werden.

Re: Syntax-Problem [shortcode] mit Wordpress

Verfasst: 12.08.2010, 11:24
von empty
SloMo hat geschrieben: return '<a target="_blank" title="' . the_title() . '" href=" //usw...
Nur leider funktioniert es so eben nicht, weil the_title() das Ganze selbst schon per echo ausgibt und nicht per Funktionsrückgabe zurückliefert.

Und deshalb muss es an dieser Stelle eben nicht the_title() sondern the_title('','',false) heißen...

Nur als Ergänzung.

Verfasst: 12.08.2010, 11:36
von bydlo
ahoi empty, ahoi slomo
vielen Dank.
Funktioniert super.
Und jetzt seh ich auch was ihr mir sagen wolltet und merke es mir fürs nächtste Mal.
Gruss axel