2017-05-17 3 views
1

Nur ein paar Wochen alt, habe ich ein einfaches Plugin für mich, um den sozialen Anteil Button im Menü zu zeigen. Bezogen auf Building Your Own Social Sharing Plugin for WordPress.Wordpress checked = "checked" -Syntax

Dann wurde das Plugin erfolgreich erstellt. Aber ich habe eine Frage der Syntax warum Wenn ich die folgende Syntax im Programm hinzugefügt habe, wird das checked = "checked" zweimal angezeigt.

echo "<input type='checkbox' name='social-share' value='1' " . checked(1, get_option('social-share'), true) ." /> "; 

Danach fand ich einen anderen Code, dies zu verhindern.

?> 
    <input type="checkbox" name="social-share" value="1" <?php checked(1, get_option('social-share'), true); ?> /> Check for Yes 
<?php 

und Function Reference/checked displaying checked='checked'

checked('1', get_option('wwo_enable_'.$lrole), false) 

Ich fragte mich, ob jemand kann mir sagen, warum HTML-Format mit der <?php checked(1, get_option('social-share-wechat'), true); ?> Syntax zeigt nicht zweimal zeigen?

Antwort

0

Sie haben unerwartete Ergebnisse erhalten, weil Sie eine Funktion wiedergegeben haben, die bereits eine Ausgabe generiert hat.

Das dritte Argument für checked() ist "Echo", das bestimmt, ob die Funktion einen Wert ausgeben oder stattdessen zurückgeben soll. Sie benötigt, um die Funktion einen Wert im Kontext zurückzukehren Sie es in

echo '<input type="checkbox" name="social-share" value="1" ' . checked(1, get_option('social-share'), false) . '/>'; 

https://codex.wordpress.org/Function_Reference/checked

verwendet haben

Der Code, den Sie es mit Griffen Dinge anders ersetzt.

<input type="checkbox" name="social-share" value="1" <?php checked(1, get_option('social-share'), true); ?> /> 

Hier bist du Echo nicht mehr das Ergebnis von checked() daher wollen Sie es Ausgabe erzeugen, so ist es richtig, das dritte Argument auf wahr zu setzen.

+0

Hallo @Nathan Dawson, vielen Dank für Ihre Antwort. Meinst du echo das 'checked (1, get_option ('social-share'), true)' wird ein weiteres Echo-Ergebnis zurückgeben, so dass es ** checked = "checked" ** zweimal angezeigt wird? – Ilove112

+0

Wenn Sie das dritte Argument, echo', in 'checked()' auf true setzen, wird die überprüfte Zeichenkette ausgegeben. Sie haben es in einer echo-Anweisung verwendet, sodass Sie den Wert, der zurückgegeben werden soll, nicht ausgegeben haben. –

+0

Ich habe es. Danke vielmals. – Ilove112

0

Wollen Sie bitte unten Sache versuchen:

<input type="checkbox" name="social-share" value="1" <?php if (1 == get_option('social-share')) echo 'checked="checked"'; ?> > 
+0

Der Code, den Sie gepostet haben, ist der Grund, warum die Funktion 'checked()' existiert. –

Verwandte Themen