登录  /  注册
博主信息
博文 263
粉丝 3
评论 2
访问量 129352
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
wordpress 元数据框获取二级子页面筛选并显示到页面(自写)
福哥的博客
原创
1081人浏览过

后台元数据框代码

function myplugin_add_meta_box() {
    $screens = array( 'post', 'page','osetin_recipe' );
    add_meta_box(
        'myplugin_sectionid',
        'Best work with',
        'myplugin_meta_box_callback',
        $screens
    );
}

add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );

function myplugin_meta_box_callback( $post ) {
    wp_nonce_field( 'myplugin_save_meta_box_data', 'myplugin_meta_box_nonce' );
    
         $value = get_post_meta( $post->ID, '_zzurl', true );
         $value = explode("#",$value);
    ?>
    <div style="overflow: hidden">
    
            <?php    

                $args = array(        'post_status' => 'publish',
                          'post_type' => 'page',        
                          'post_parent' => 1525,        
                          'orderby' => 'menu_order',        
                          'order' => 'ASC',        
                          'nopaging' => true,    );   
    $child_pages = get_posts($args); 

                $count = count($child_pages);
        if ( $count > 0 ){
    
        echo "<ul>";
        
        foreach ($child_pages as $post) {        
    setup_postdata($post);      
    $title = $post->post_title;  
    $id = $post->ID; 
        ?>

        <div class="acf-field acf-taxonomy-field" style="width: 33.33%; float: left; padding: 9px 12px 0 0;">
                    <div class="acf-label"><label><?php echo $title ?></label></div>
                    <div class="categorychecklist-holder">
                        <ul class="acf-checkbox-list acf-bl">
                        <?php 
                            
                                $args1 = array(        'post_status' => 'publish',
                          'post_type' => 'page',        
                          'post_parent' => $id,        
                          'orderby' => 'menu_order',        
                          'order' => 'ASC',        
                          'nopaging' => true,    );   
    $child_pages1 = get_posts($args1); 

            
        $count1 = count($child_pages1);
        if ( $count1 > 0 ){
    
        echo "<ul>";
        //static $j = 0;    
        foreach ($child_pages1 as $post1) {        
    setup_postdata($post1);      
    $title1 = $post1->post_title; 
    $id1 = $post1->ID;     
    //$value[$j]==
                        
                            ?>    
                            <li><label><input id="_zzurl[]" name="_zzurl[]" value='<?php echo $id1 ; ?>' <?php if(in_array($id1,$value)){echo "checked";};?> type="checkbox"> <span><?php echo $title1 ?></span></label></li>
                            <?php //$j++;
                            } 
                            }?>
                        </ul>
                    </div>
                </div>
        <?php }
        echo "</ul>";
        }?>
    </div>    
    <?php
}

function myplugin_save_meta_box_data( $post_id ) {
    if ( ! isset( $_POST['myplugin_meta_box_nonce'] ) ) {
        return;
    }
    if ( ! wp_verify_nonce( $_POST['myplugin_meta_box_nonce'], 'myplugin_save_meta_box_data' ) ) {
        return;
    }
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
        return;
    }
    if ( isset( $_POST['post_type'] ) && 'page' == $_POST['post_type'] ) {
        if ( ! current_user_can( 'edit_page', $post_id ) ) {
            return;
        }
    } else {
        if ( ! current_user_can( 'edit_post', $post_id ) ) {
            return;
        }
    }
    // if ( ! isset( $_POST['_zzurl'] ) ){
        // return;
    // }
    $my_data=array();
    for($z=0;$z<count($_POST['_zzurl']);$z++){
    $my_data[$z] =  $_POST['_zzurl'][$z];
    
    }
    
    $data = implode("#",$my_data);
    $data = sanitize_text_field( $data );
    if ( ! isset( $_POST['_zzurl'] ) ) {
        $data = "";
    }
    update_post_meta( $post_id, '_zzurl', $data );
}
add_action( 'save_post', 'myplugin_save_meta_box_data' );

前台页面显示代码

<?php 


 $value = get_post_meta( $post->ID, '_zzurl', true );
 $value = explode("#",$value);
 $countv = count($value);
if( !empty($value[0]) ){

 for ($i=0;$i<$countv;$i++){
           
    $page = get_post($value[$i]); 
                $count = count($page);
        if ( $count > 0 ){


    $title = $page->post_title;  
    $id = $value[$i]; 


?>
 <div>     
        图:<?php echo get_the_post_thumbnail($id); ?>
        链接<a href="<?php echo get_page_link($id); ?>"><?php echo $title; ?></a>
    </div>    
<?php }
            }
 
 };
 ?>


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学