想用帖子标题替换帖子内容 - jQuery无法正常工作

时间:2011-11-11 00:57:56

标签: jquery html

首先合法化:我正在尝试为Wordpress学习PHP和Javascript。我已经找到了这个问题的答案,但由于我并没有真正理解PHP和JS,我找不到答案 - 即使我可能已经看过或读过它。

我在function.php文件中为自定义帖子类型创建了一个标题,之后我想将它插入到帖子的正文/内容中。

我使用相同的功能来替换标题和内容。

以下代码的作用是替换帖子的标题,但内容不是。

我认为jQuery会这样做,但也许内容的工作方式不同,或者我使用了错误的过程。

有人可以帮助我吗?

这是HTML:

    //Add CARS meta boxes

    add_action( 'add_meta_boxes' , 'car_meta_boxes' );
    function car_meta_boxes() {
        add_meta_box(
            'car_info',
            __( 'Car Info'),
            'car_info_div',
            'cars'
        );
    }
    function car_info_div( $post ) {
      // Use nonce for verification
         wp_nonce_field( plugin_basename( __FILE__ ), 'car_noncename' );

    //CARS Data Entry Fields
?>
    <div>
        <label for="car_calc_name"><?php _e("Car Name");?></label>
        <input type="text" name="car_calc_name" value="<?php echo get_post_meta($post->ID, 'car_calc_name', true);?>" /><br>
        <label for="car_calc_color"><?php _e("Car Color");?></label>
        <input type="text" name="car_calc_color" value="<?php echo get_post_meta($post->ID, 'car_calc_color', true);?>" /><br>
        <label for="car_calc_series"><?php _e("Car Series");?></label>
        <input type="text" name="car_calc_series" value="<?php echo get_post_meta($post->ID, 'car_calc_series', true);?>" /><br>
        <label for="car_calc_descript"><?php _e("Car Discription");?></label>
        <input type="text" name="car_calc_descript" value="<?php echo get_post_meta($post->ID, 'car_calc_descript', true);?>" /><br>
        <input type="button" value="Create" id="create" />
        <input type="button" value="Replace" id="replace" />
    </div>

    <script type="text/javascript">

然后是PHP:

// Cars REPLACE Button

jQuery('#replace').click(function(){
    //get the parts of the title
        var cname = jQuery('input[name="car_calc_name"]').val();
        var ccolor = jQuery('input[name="car_calc_color"]').val();
        var cseries = jQuery('input[name="car_calc_series"]').val();
        var cdescript = jQuery('input[name="car_calc_descript"]').val();


//Update title
    var title = cname + ' - ' + ccolor + ' - ' + cseries + ' - ' + cdescript;
    jQuery('input[name="post_title"]').focus().val(title);
    jQuery('input[name="post_content"]').focus().val(title);
    });
    //-->

1 个答案:

答案 0 :(得分:0)

您的代码对我来说没问题,但如果您发布了相关的HTML也很有帮助。帖子内容是否真的存储在input元素中,而不是textarea?如果是这种情况,您可以尝试使用jQuery('textarea[name="post_content"]').val(title);

你实际上并不需要.focus()位来设置值,没有它就可以工作。