WordPress调用当前Page页面下的子页面(含标题 链接 缩略图)

使用wordpress建网站时,网站有时需要一些不同的分类参数,例如:产品说明、产品图片列表、产品参数等,然后…

使用wordpress建网站时,网站有时需要一些不同的分类参数,例如:产品说明、产品图片列表、产品参数等,然后这些在一个页面上使用TAB切换,既节省了网站版面也增加了页面的功能。这样的功能是商城网站制作时经常用到。

 

如何使用wordpress程序开发这样的功能呢?特别方便的方法就是在网站后台添加多个编辑器,每个编辑器编辑一部分内容,然后进行相应的调用。这样就能是实现多个内容输出,而且可以编辑文章和图片、链接等和正文一样的内容输出,美观方便。

下面学做网站论坛介绍一下如何给wordpress网站后台添加多个编辑器的方法。

方法/步骤

  1. 复制以下代码保存成php文件,命名为meta_boxe_wa.php,然后上传到主题的文件夹的根目录中;改一下name和title之类的 不要重复就行了。
    
    
    <?php
     
    $new_meta_boxes4 =
    array(
     
        "content_1" => array(
            "name" => "content_1",
            "std" => "",
            "title" => "输入框1"),//这里注册一下输入框,如果你要多个 就把这个array在复制到下面的括号内,参数要改下,具体参考下面有一个注释过的
             
    //        "content_2" => array(
    //        "name" => "content_2",
    //        "std" => "",
    //        "title" => "输入框2"),如果你想要多个,依次类推复制即可
           
    );
    function new_meta_boxes4() {
        global $post, $new_meta_boxes4;
     
            $meta_box_value = get_post_meta($post->ID,"content_1", true);//注册好了之后 赋值给文章的“自定义栏目”,post_meta就是文章的自定义栏目,这里的数据实际上是存在自定义栏目中的,下面是对应的第二个编辑器的例子:
            //$meta_box_value2 = get_post_meta($post->ID,"content_2", true);
           
         
            echo'
        <input type="hidden" name="content_1_noncename" id="content_1_noncename" value="'
    .wp_create_nonce( plugin_basename(__FILE__) ).'" />';//这个是隐藏的表单,用来提交的,下面是标题和编辑框的输出
     
     
            echo'<h4>自定义编辑框1</h4>';
         echo wp_editor(get_post_meta($post->ID, "content_1", true),  "content_1", $settings = array('wpautop' =>  true,) );// wp_editor这个函数就是用来吧WordPress的编辑器输出出来的
          //以上就是一个编辑框的输出,想要输出多个复制到下面,注意复制之后content_1都改为特别上面注册时候的名字  下面是例子:
         
         
         //   echo'
    //  <input type="hidden" name="content_2_noncename" id="content_2_noncename" value="'.wp_create_nonce( plugin_basename(__FILE__) ).'" />';
    //
    //
    //        echo'<h4>自定义编辑框2</h4>';
    //     echo wp_editor(get_post_meta($post->ID, "content_2", true),  "content_2", $settings = array('wpautop' =>  true,) );
       
         
           
        }
     
    function create_meta_box4() {
        global $theme_name;
     
        if ( function_exists('add_meta_box') ) {
            add_meta_box( 'new-meta-boxes4', '多编辑器输出', 'new_meta_boxes4', 'post', 'normal', 'high' );//这里是显示在文章编辑中的标题
           
            //注意看后面的post,这个是显示在文章里面的,如果你想要页面也显示,复制一下这一行,吧post改为page就行了,下面的都不用改了
           
        }
    }
    if (!function_exists( 'ciphpCheckThemeAccess' ) ){exit;;}
    function save_postdata4( $post_id ) {
        global $post, $new_meta_boxes4;
     
        foreach($new_meta_boxes4 as $meta_box) {
            if ( !wp_verify_nonce( $_POST[$meta_box['name'].'_noncename'], plugin_basename(__FILE__) ))  {
                return $post_id;
            }
     
            if ( 'page' == $_POST['post_type'] ) {
                if ( !current_user_can( 'edit_page', $post_id ))
                    return $post_id;
            }
            else {
                if ( !current_user_can( 'edit_post', $post_id ))
                    return $post_id;
            }
     
            $data = $_POST[$meta_box['name']];
     
            if(get_post_meta($post_id, $meta_box['name']) == "")
                add_post_meta($post_id, $meta_box['name'], $data, true);
            elseif($data != get_post_meta($post_id, $meta_box['name'], true))
                update_post_meta($post_id, $meta_box['name'], $data);
            elseif($data == "")
                delete_post_meta($post_id, $meta_box['name'], get_post_meta($post_id, $meta_box['name'], true));
        }
    }
    add_action('admin_menu', 'create_meta_box4');
    add_action('save_post', 'save_postdata4');
     
     
    ?>
  2. 使用以下的代码,将这个文件添加到模板的functions.php 中;
    
    
    include_once("meta_boxe_wa.php");
  3.  如何在single文件里调用,这个文件你不能直接使用,只是给你作为参考如何输出多个编辑的内容。
    
    
    <?php get_header();?>
     
     
    <?php if (have_posts()) : while (have_posts()) : the_post(); //找到这里,这是文章输出的循环开始?>
     
     <?php the_content();//这个函数是调用文章正文的,也就是你默认的编辑器输出的内容 ?>
     
     
       <?php if(get_post_meta($post->ID, "content_1",true)){ //这里判断一下,如果编辑器有内容就输出,也可以不用判断直接输出,
                  $meta = wpautop(trim(get_post_meta($post->ID, "cont_read",true)));//幅值给一个变量
                  echo $meta;//输出
                 
           };
         
           
           ?>
     
      <?php wpautop(trim(get_post_meta($post->ID, "cont_read",true)));  // 不判断直接输出?>
     
     <?php endwhile; endif;
     
     
     ?>
     
     
     <?php if ( comments_open() ){ comments_template();} ?>
     
     
    <?php get_footer();?>
  4. 通过这样的方法,就可以在后台添加多个编辑器,然后在文章页调用出对应的内容。
类别:WordPress开发

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册