Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Syntax-Problem [shortcode] mit Wordpress

Informationen & SEO Tipps zum Einsatz und Verwendung von Blog-, Wiki und Content Management Systemen wie Drupal, Typo3, Wordpress, Reddot, Joomla, Moin Moin, phpWiki sowie Shop-Systemen wie z.B. XT-Commerce, Magento, ePages, Intershop, 1&1 Shops.
Neues Thema Antworten
bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 12.08.2010, 08:20

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

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

slider
PostRank 4
PostRank 4
Beiträge: 115
Registriert: 11.06.2004, 07:47

Beitrag von slider » 12.08.2010, 09:41

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;;

bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 12.08.2010, 10:04

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?

Anzeige von ABAKUS

von Anzeige von ABAKUS »

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

Jetzt anfragen: 0511 / 300325-0.


empty
PostRank 2
PostRank 2
Beiträge: 55
Registriert: 11.02.2005, 09:31

Beitrag von empty » 12.08.2010, 10:27

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)

bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 12.08.2010, 10:48

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?

empty
PostRank 2
PostRank 2
Beiträge: 55
Registriert: 11.02.2005, 09:31

Beitrag von empty » 12.08.2010, 10:51

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?

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 12.08.2010, 11:18

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.

empty
PostRank 2
PostRank 2
Beiträge: 55
Registriert: 11.02.2005, 09:31

Beitrag von empty » 12.08.2010, 11:24

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.

bydlo
PostRank 9
PostRank 9
Beiträge: 2209
Registriert: 11.12.2004, 01:03
Wohnort: Berlin

Beitrag von bydlo » 12.08.2010, 11:36

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

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag