2009-09-03 11 views
3

Ich versuche, eine neue Shortcode in Wordpress zu definieren, und ich bekomme die folgende Fehlermeldung, wenn die Funktion geladen wird (nur geladen, ich habe es nicht versuchte noch überall zu nennen):count() verursacht "unerwarteten T_STRING" Fehler?

Parse error: syntax error, unexpected T_STRING in /pathtomytheme/user_functions.php on line 105 

Hier ist die Code; 105 Linie ist "$ cat_n = count ($ Katzen) - 1;":

function usertag_2colcats($atts) { 
extract(shortcode_atts(array('parent' => 0,'depth' => 2,), $atts)); 
$cats = explode('<br />', wp_list_categories('title_li=&echo=0&depth=' . $depth . '&style=none&show_count=1&use_desc_for_title=0&child_of=' . $parent)); 
$cat_n = count($cats) – 1; 
for ($i = 0; $i < $cat_n; $i++) { 
    if ($i < $cat_n/2) $cat_left = $cat_left . '<li>' . $cats[$i] . '</li>'; 
    elseif ($i >= $cat_n/2) $cat_right = $cat_right.'<li>'.$cats[$i].'</li>'; 
} 
echo '<ul class="leftcats">' . $cat_left . '</ul><ul class="rightcats">' . $cat_right . '</ul>'; 

}

Wenn ich diese Zeile ändern, so dass es nicht die Zählung Funktion nicht verwenden, z.B. Zu "$ cat_n = 5;" lädt die Funktion ohne Fehler. Es scheint, als ob ich etwas wirklich Offensichtliches vermisse; Was ist es?

Der ursprüngliche Code ist hier: http://pcsplace.com/blog-tips/how-to-split-categories-list-into-columns-in-wordpress/

Antwort

4

Das mag komisch klingen, aber das Zeichen "-" in Zeile 105 ist ein seltsames Zeichen. Versuchen Sie, diese Zeile neu zu schreiben, anstatt sie zu kopieren und einzufügen. Ich habe es getan und der Fehler ist weg.

Edit: Ok, also das ist was ich gefunden habe. Das Zeichen, das Sie in Zeile 105 haben, hat den ASCII-Code 226. Aber der ASCII-Code für das Minuszeichen ist 45. Also ist Ihr Problem definitiv da.

Copy Paste um jeden Preis vermeiden;)

+0

+1 Gute Spotting. PHP behandelt ASCII 226 als 'Wort', also ist es nicht mehr gültig als '$ cat_n = count ($ cats) hallo 1;' –

+0

Danke Rogeriopvl, Sie hatten absolut Recht. Jetzt geht es allen gut. – Becca

1

Haben Sie versucht zu var_dump($cats)?

Manchmal count() kann in einigen Situationen false zurückgeben, aber in diesem Fall bin ich mir ziemlich sicher, dass es nur die gesamte Zeichenfolge zurückgegeben hat, da sie nicht gefunden wurde.

Verwandte Themen