|  | 
地板
 
 
 楼主|
发表于 2021-5-29 17:27:48
|
只看该作者 
| 前端调用 
 模板命名
 
 虽然很多人都会用自定义内容类型,但是内容类型的列表页不好做,即使做好,又该怎么放到菜单上显示出来,比如将 “电影” 列表页放在菜单中,自定义内容类型绑定了一个自定义分类法,又该怎么去显示分类法中某个分类下的文章,比如 “科幻片” 这个电影分类。
 
 模板命名规则:
 
 自定义内容类型 模板命名规则:archive-{post_type_name}.php 如 archive-movies.php
 自定义分类法 模板命名规则:taxonomy-{taxonomy_name}.php 如 taxonomy-movie_type.php
 自定义内容类型内容页 模板命名规则:single-{post_type_name}.php 如 single-movies.php
 
 将内容类型加入到菜单,需要安装一个插件 “Custom Post Type’s Archive in WP Nav Menu”,安装好之后,没有任何设置界面,进入到 “外观-菜单”,你可以发现菜单编辑区域的左边有了一个custom post type archives ,现在内容类型就在这里了,如果你发现内容类型不在这,那就请到 pods 的内容类型管理界面的高级选项中确认你的 “拥有存档” 这个选项已经打上勾了。
 
 注:可能由于缓存问题,如果发现添加了内容类型到菜单后,前台点击内容类型的菜单出现404页面,请到 “设置-固定链接”,点击一下保存即可。
 
 数据调用
 
 后台配置好,其实最主要的,还是要能够显示出来才是最重要的,pods 的显示方法有三种:
 
 短代码方式显示,短代码请参考 pods 短代码文档,配合 pods 官方提供的 magic tags。
 利用 pods 的 “page” 和 “template” 组件,这两个组件可在 pods 组件中开启,请参考文章。
 利用模板函数,即将重点介绍。
 
 这里只介绍模板函数方式调用 pods 数据,因为这才是做主题开发时能使用的东西。
 
 输出函数
 
 Pods 显示数据函数
 
 pods_field_display ( $pod,$post->ID,'$field )
 关于该函数的文档,请查看 pods 官方文档。
 
 function pods_field_display ( $pod, $id = false, $name = null, $single = false )参数 数据类型 备注
 $pod (string) Pod name,即为 pods 机读名称
 $id (mixed) (选填) 某篇文章ID或slug,以查询该篇文章数据
 $name (string|array) 字段名称,或者关联数组的参数
 $single (boolean) (选填) 是否以数组的形式返回
 图像字段输出函数
 
 pods_field_display() 不会真正的显示出一张图片,而是显示出图片的 URL,pods 特地为图片显示定义了一个函数:
 pods_image ( $image, $size = 'thumbnail', $default = 0, $attributes = '', $force = false )
 关于该函数的文档,请查看 官方文档。
 
 function pods_image ( $image, $size = 'thumbnail', $default = 0, $attributes = '', $force = false )
 参数 数据类型 备注
 $image (array|int|string) 图片字段的数组,或ID,或guid
 $size (string|array) 图片大小样式
 $default (int) 如果图片不存在,则显示该图片$default
 $attributes (string|array) 图片属性 (内部通过 wp_get_attachment_image获取)
 $force (boolean) 强制规定大小
 图片有单张图片和多张图片,如不清楚单张与多张,请到 pods 添加字段查看。如果字段是多张图片,那么会返回一个数组,所以,输出图像字段的代码为:
 
 单张图片字段示例代码:
 
 
 复制代码<?php
    echo pods_image( get_post_meta( $post->ID, $image_field_name, true ), ’original’ );
?>
多张图片字段:
 
 
 复制代码<?php
    $images =get_post_meta( $post->ID, ’images’);
    foreach ( $images as $image )
    {
        echo pods_image( $image, ’original’ );
    }
?>
输出字段注意事项:
 
 yes/no 字段:后台勾选 “是” 输出 1,不勾选输出空值。
 Code 字段:可执行 php 脚本代码,输出 php 代码执行结果。
 Website字段:本人无法输出该字段内容,请勿使用。
 
 因为 pods 自定义字段也属于 WordPress 内部自定义字段,所以依然可以使用 WordPress 的 get_post_meta()输出,但是也并不是所有字段都能输出,经过测试,可直接使用 get_post_meta()函数输出的字段有:
 
 
 PhoneEmail
 Password
 Pptext
 Date time
 Pnumber
 Currency
 Color
 对于其他字段,请使用 pods_field_display();
 
 模板代码段示例
 
 在主循环中
 
 代码示例:
 
 
 复制代码<?php if(have_posts()) :while(have_posts()) : the_post(); ?>
<h1>
    <a href="">
        <?php the_title(); ?>
    </a>
</h1>
<!--标题-->
<div>
    <div>
        <span>年份:</span>
        <?php echo pods_field_display( 'movie',$post->ID,'time');//显示(年份)time字段 ?>
    </div>
    <div>
        <span>区域:</span>
        <?php echo pods_field_display( 'movie',$post->ID,'zone');//显示(区域)zone字段?>
    </div>
    <div>
        <span>时长:</span>
        <?php echo pods_field_display( 'movie',$post->ID,'how_long');//显示(时长)how_long字段 ?>
        <span>分钟</span>
    </div>
    <div>
        <span>海报:</span>
        <?php echo pods_image( get_post_meta( $post->ID, 'poster', true),'original'); //显示海报字段 ?>
    </div>
</div>
<!--显示自定义字段-->
<div>
    <?php the_excerpt(); ?>
</div>
<!-- 内容摘要 -->
<?php endwhile;endif; ?>
万能循环示例代码
 
 
 复制代码<?php query_posts( 'showposts=5&post_type=movie');while(have_posts()) : the_post(); ?>
<h1>
    <a href="">
        <?php the_title(); ?>
    </a>
</h1>
<!--标题-->
<div>
    <div>
        <span>年份:</span>
        <?php echo pods_field_display( 'movie',$post->ID,'time');//显示(年份)time字段 ?>
    </div>
    <div>
        <span>区域:</span>
        <?php echo pods_field_display( 'movie',$post->ID,'zone');//显示(区域)zone字段?>
    </div>
    <div>
        <span>时长:</span>
        <?php echo pods_field_display( 'movie',$post->ID,'how_long');//显示(时长)how_long字段 ?>
        <span>分钟</span>
    </div>
    <div>
        <span>海报:</span>
        <?php echo pods_image( get_post_meta( $post->ID, 'poster', true),'original'); //显示海报字段 ?>
    </div>
</div>
<!--显示自定义字段-->
<div>
    <?php the_excerpt(); ?>
</div>
<!-- 内容摘要 -->
<?php endwhile;wp_reset_query(); ?>
自定义设置页面(调用主题选项数据)
 
 请注意 $id 参数为 pods-settings-{slug_name},比如我的 pods name为 theme_option,那么 $id 的实参应该为 ‘pods-settings-theme_option’。
 
 
 复制代码<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_logo'); ?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_title'); ?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_keyword'); ?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_description'); ?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_tongji'); ?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_beian'); ?>
 | 
 |