对尝试PHP非常陌生,我正在使用教程破解我的第一个插件。。
我有一个自定义的元框,在所有WordPress页面上(编辑器中)都有一个是/否单选按钮。
EDIT- 我删除了原始代码。见下文。
所以我的问题是,如何使用if()语句检查两个按钮中的哪个按钮?我计划在选择了“是”的WordPress页面上附加一个脚本。我只是不确定我应该寻找哪个值,或者如何调用它。
EDIT-
这就是我现在使用的,运气不好。
当前代码:
<?php
}
/**
* Adds a meta box to the post editing screen
*/
function prfx_custom_meta() {
add_meta_box( \'prfx_meta\', __( \'Meta Plugin\', \'prfx-textdomain\' ), \'prfx_meta_callback\', \'page\', \'side\', \'high\' );
}
add_action( \'add_meta_boxes\', \'prfx_custom_meta\' );
function is_edit_page($new_edit = null){
global $pagenow;
//make sure we are on the backend
if (!is_admin()) return false;
if($new_edit == "edit")
return in_array( $pagenow, array( \'post.php\', ) );
elseif($new_edit == "new") //check for new post page
return in_array( $pagenow, array( \'post-new.php\' ) );
else //check for either new or edit
return in_array( $pagenow, array( \'post.php\', \'post-new.php\' ) );
}
/**
* Outputs the content of the meta box
*/
function prfx_meta_callback( $post ) {
wp_nonce_field( basename( __FILE__ ), \'prfx_nonce\' );
$prfx_stored_meta = get_post_meta( $post->ID );
?>
<p>
<span class="prfx-row-title"><?php _e( \'Is this a thank you page?\', \'prfx-textdomain\' )?></span>
<div class="prfx-row-content">
<label for="meta-radio-one">
<input type="radio" name="meta-radio" id="meta-radio-one" value="radio-one" <?php if ( isset ( $prfx_stored_meta[\'meta-radio\'] ) ) checked($prfx_stored_meta[\'meta-radio\'][0], \'radio-one\' ); ?>>
<?php _e( \'Yes\', \'prfx-textdomain\' )?>
</label>
<br>
<label for="meta-radio-two">
<input type="radio" name="meta-radio" id="meta-radio-two" value="radio-two" <?php
if (is_edit_page(\'new\')) echo "checked";
else if (isset ( $prfx_stored_meta[\'meta-radio\'] ) ) checked($prfx_stored_meta[\'meta-radio\'][0], \'radio-two\' );
else echo "checked"; ?>>
<?php _e( \'No\', \'prfx-textdomain\' )?>
</label>
</div>
</p>
<?php
}
/**
* Saves the custom meta input
*/
// Pending a fix from WordPress- https://core.trac.wordpress.org/ticket/16972
function prfx_meta_save( $post_id ) {
// Checks save status
$is_autosave = wp_is_post_autosave( $post_id );
$is_revision = wp_is_post_revision( $post_id );
$is_valid_nonce = ( isset( $_POST[ \'prfx_nonce\' ] ) && wp_verify_nonce( $_POST[ \'prfx_nonce\' ], basename( __FILE__ ) ) ) ? \'true\' : \'false\';
// Exits script depending on save status
if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
return;
}
// Checks for input and saves if needed
if( isset( $_POST[ \'meta-radio\' ] ) ) {
update_post_meta( $post_id, \'meta-radio\', $_POST[ \'meta-radio\' ] );
}
}
add_action( \'save_post\', \'prfx_meta_save\' );
echo \'<pre>\' . print_r($_POST, true) . \'</pre>\';
global $post;
$post_id = $post->ID;
get_post_meta( $post->ID, $_POST[\'meta-radio\'], true );
$response_radio = $_POST[\'meta-radio\'];
if ($response_radio=="radio-one") {
add_action(\'wp_footer\', \'add_this\');
function add_this() {
echo "The Yes button is selected...";
}
} elseif ($response_radio=="radio-two"){
add_action(\'wp_footer\', \'add_this\');
function add_this() {
echo "The No button is selected...";
}
} else {
add_action(\'wp_footer\', \'add_this\');
function add_this() {
echo "No data is passing...";
}
}
结果是“没有数据通过…”查看实时页面时(即使数据保存在元框中)。
Edit-我补充道:echo \'<pre>\' . print_r($_POST, true) . \'</pre>\';
以下内容:add_action( \'save_post\', \'prfx_meta_save\' );
输出(编辑器和发布页面):Array
(
)