php
  • wordpress
  • syntax
  • checked
  • 2017-05-17 88 views 1 likes 
    1

    只有幾個星期的年齡,我建立了一個簡單的插件來顯示菜單中的社交分享按鈕。簡稱Building Your Own Social Sharing Plugin for WordPressWordPress的檢查=「檢查」的語法

    然後,插件成功創建。但我有一個語法問題,爲什麼如果我在程序中添加了以下語法,checked =「checked」將顯示兩次。

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

    之後,我發現了另一個代碼來防止這種情況發生。

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

    Function Reference/checked displaying checked='checked'

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

    我想知道如果任何人都可以使用,爲什麼HTML格式來顯示<?php checked(1, get_option('social-share-wechat'), true); ?>語法不會出現兩次告訴我?

    回答

    0

    您看到意外的結果,因爲您正在回顯已經生成輸出的函數。

    checked()的第三個參數是'echo',它確定函數是應該輸出一個值還是返回它。你所需要的功能,你在使用它的上下文返回一個值

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

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

    的代碼,你帶手柄不同的事情取而代之。

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

    這裏你不再回應checked()的結果,因此您確實希望它生成輸出,因此將第三個參數設置爲true是正確的。

    +0

    嗨@Nathan道森,感謝您的答覆。你的意思是回顯'checked(1,get_option('social-share'),true)'會返回另一個回顯結果,這樣它會顯示** checked =「checked」**兩次? – Ilove112

    +0

    在'checked()'中設置第三個參數'echo'爲true時,它將輸出檢查的字符串。您在echo語句中使用它,因此您需要返回值而不是輸出。 –

    +0

    我明白了。非常感謝。 – Ilove112

    0

    請你嘗試下面的事情:

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

    您發佈的代碼是'checked()'函數存在的全部原因。 –

    相關問題