带有自定义帖子的多图像/滑块[single.php]

内拉·阿克拉蒂(Nayla Akrati)

我在wordPress自定义帖子类型的“特征图像”部分下寻找一种添加多个图像选项的方法。我将single.php在要显示滑块图像的文件中集成/实现这些图像。我想使用Codex / coding方法来做,请不要插件。任何想法/帮助将不胜感激。

编辑

我已经找到了此代码,必须将其粘贴到中function.php or plugin.php我已经创建了一个新文件,plug-slider.php并在其中添加了以下代码,但该代码无法正常工作,但问题是我必须分别调用每个图像,而不是像创建数组并调用该数组一样,如果没有第二/第三张图像其他帖子,则滑块显示为空。.我不知道为什么,可能是我丢失了一些东西。有人可以查看一下。

代码参考:堆栈溢出问题

//init the meta box
add_action( 'after_setup_theme', 'custom_postimage_setup' );
function custom_postimage_setup(){
    add_action( 'add_meta_boxes', 'custom_postimage_meta_box' );
    add_action( 'save_post', 'custom_postimage_meta_box_save' );
}

function custom_postimage_meta_box(){

    //on which post types should the box appear?
    $post_types = array('portfolios','page');
    foreach($post_types as $pt){
        add_meta_box('custom_postimage_meta_box',__( 'More Featured Images', 'yourdomain'),'custom_postimage_meta_box_func',$pt,'side','low');
    }
}

function custom_postimage_meta_box_func($post){

    //an array with all the images (ba meta key). The same array has to be in custom_postimage_meta_box_save($post_id) as well.
    $meta_keys = array('second_featured_image','third_featured_image');

    foreach($meta_keys as $meta_key){
        $image_meta_val=get_post_meta( $post->ID, $meta_key, true);
        ?>
        <div class="custom_postimage_wrapper" id="<?php echo $meta_key; ?>_wrapper" style="margin-bottom:20px;">
            <img src="<?php echo ($image_meta_val!=''?wp_get_attachment_image_src( $image_meta_val)[0]:''); ?>" style="width:100%;display: <?php echo ($image_meta_val!=''?'block':'none'); ?>" alt="">
            <a class="addimage button" onclick="custom_postimage_add_image('<?php echo $meta_key; ?>');"><?php _e('add image','yourdomain'); ?></a><br>
            <a class="removeimage" style="color:#a00;cursor:pointer;display: <?php echo ($image_meta_val!=''?'block':'none'); ?>" onclick="custom_postimage_remove_image('<?php echo $meta_key; ?>');"><?php _e('remove image','yourdomain'); ?></a>
            <input type="hidden" name="<?php echo $meta_key; ?>" id="<?php echo $meta_key; ?>" value="<?php echo $image_meta_val; ?>" />
        </div>
    <?php } ?>
    <script>
    function custom_postimage_add_image(key){

        var $wrapper = jQuery('#'+key+'_wrapper');

        custom_postimage_uploader = wp.media.frames.file_frame = wp.media({
            title: '<?php _e('select image','yourdomain'); ?>',
            button: {
                text: '<?php _e('select image','yourdomain'); ?>'
            },
            multiple: false
        });
        custom_postimage_uploader.on('select', function() {

            var attachment = custom_postimage_uploader.state().get('selection').first().toJSON();
            var img_url = attachment['url'];
            var img_id = attachment['id'];
            $wrapper.find('input#'+key).val(img_id);
            $wrapper.find('img').attr('src',img_url);
            $wrapper.find('img').show();
            $wrapper.find('a.removeimage').show();
        });
        custom_postimage_uploader.on('open', function(){
            var selection = custom_postimage_uploader.state().get('selection');
            var selected = $wrapper.find('input#'+key).val();
            if(selected){
                selection.add(wp.media.attachment(selected));
            }
        });
        custom_postimage_uploader.open();
        return false;
    }

    function custom_postimage_remove_image(key){
        var $wrapper = jQuery('#'+key+'_wrapper');
        $wrapper.find('input#'+key).val('');
        $wrapper.find('img').hide();
        $wrapper.find('a.removeimage').hide();
        return false;
    }
    </script>
    <?php
    wp_nonce_field( 'custom_postimage_meta_box', 'custom_postimage_meta_box_nonce' );
}

function custom_postimage_meta_box_save($post_id){

    if ( ! current_user_can( 'edit_posts', $post_id ) ){ return 'not permitted'; }

    if (isset( $_POST['custom_postimage_meta_box_nonce'] ) && wp_verify_nonce($_POST['custom_postimage_meta_box_nonce'],'custom_postimage_meta_box' )){

        //same array as in custom_postimage_meta_box_func($post)
        $meta_keys = array('second_featured_image','third_featured_image');
        foreach($meta_keys as $meta_key){
            if(isset($_POST[$meta_key]) && intval($_POST[$meta_key])!=''){
                update_post_meta( $post_id, $meta_key, intval($_POST[$meta_key]));
            }else{
                update_post_meta( $post_id, $meta_key, '');
            }
        }
    }
}

我在single.php中的回调代码

<div class="project-carousel owl-carousel js-project-carousel">
  <?php
                   
                   while(have_posts()) {
                       the_post(); ?>
    <!-- <div class="project-detail-item">
    <?php //the_post_thumbnail('portfolio-slider') ?>
    </div> -->
    
    <?php 
    $slider_img=wp_get_attachment_image(get_post_meta(get_the_ID(),'second_featured_image', true),'full');
    if($slider_img !='')
                   {?>
                    <div class="project-detail-item">
                  <?php
          echo wp_get_attachment_image(get_post_meta(get_the_ID(),'second_featured_image', true),'full');
                   ?>
                </div>   
                  <?php }
                   else
                   {
                    the_post_thumbnail('portfolio-slider');
                   }
    ?>
    
  </div>

再次,该if/else块适用于空检查,但仅适用于单个实例,就像我必须检查每个图像...还是弄乱了?

msz

请进行以下更改,然后尝试...

在您的插件文件中更改此行。

$meta_keys = array('second_featured_image','third_featured_image');

$meta_keys = array('second_featured_image','third_featured_image','fourth_featured_image','fifth_featured_image');

将您的回叫single.php文件代码更改为如下所示。循环浏览每个文件并检查是否为空。我修改了代码,最多可以接受5/6张图像,因此您可以在滑块中使用它。

<div class="project-carousel owl-carousel js-project-carousel">
  <?php
                   
                   while(have_posts()) {
                       the_post();
    $slider_img=the_post_thumbnail('portfolio-slider');
    $slider_img1=wp_get_attachment_image(get_post_meta(get_the_ID(),'second_featured_image', true),'full');
    $slider_img2=wp_get_attachment_image(get_post_meta(get_the_ID(),'third_featured_image', true),'full');
    $slider_img3=wp_get_attachment_image(get_post_meta(get_the_ID(),'fourth_featured_image', true),'full');
    $slider_img4=wp_get_attachment_image(get_post_meta(get_the_ID(),'fifth_featured_image', true),'full');
    $slider_img5=wp_get_attachment_image(get_post_meta(get_the_ID(),'six_featured_image', true),'full');
    $slider_img6=wp_get_attachment_image(get_post_meta(get_the_ID(),'svn_featured_image', true),'full');
    if($slider_img !='')
                   {?>
                    <div class="project-detail-item">
                  <?php echo $slider_img;?>
                   </div> 
                   <?php }?>
                   <?php if($slider_img1 !=''){ ?>
                    <div class="project-detail-item">
               <?php echo $slider_img1; ?>
                </div>  
                <?php }?> 
                <?php if($slider_img2 !=''){ ?>
                    <div class="project-detail-item">
               <?php echo $slider_img2; ?>
                </div>  
                <?php }?> 
                <!--image-->
                <?php if($slider_img3 !=''){ ?>
                    <div class="project-detail-item">
               <?php echo $slider_img3; ?>
                </div>  
                <?php }?> 

                <!--image end-->
                <!--image-->
                <?php if($slider_img4 !=''){ ?>
                    <div class="project-detail-item">
               <?php echo $slider_img4; ?>
                </div>  
                <?php }?> 
                <!--image end-->
                <!--image-->
                <?php if($slider_img5 !=''){ ?>
                    <div class="project-detail-item">
               <?php echo $slider_img5; ?>
                </div>  
                <?php }?> 
                <!--image end-->
                <!--image-->
                <?php if($slider_img6 !=''){ ?>
                    <div class="project-detail-item">
               <?php echo $slider_img6; ?>
                </div>  
                <?php }?> 
                <!--image end-->
                
    
  </div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

带有自定义帖子的多图像/滑块[single.php]

来自分类Dev

php:发布带有图像的帖子

来自分类Dev

自定义category.php中的帖子数量

来自分类Dev

带有类别特征图像php循环的填充滑块

来自分类Dev

如何在PHP中使用带有foreach的数组制作自定义关联数组

来自分类Dev

通过PHP将自定义脚本标签转换为带有锚标签的新脚本

来自分类Dev

HTML表单-PHP电子邮件,带有自定义消息和复选框

来自分类Dev

带有自定义页面选择下拉列表的 PHP 引导程序分页

来自分类Dev

带有 php 的 Nginx 自定义 404 页面不起作用

来自分类Dev

带有标题,100%宽度和自定义高度的自适应图像滑块

来自分类Dev

带有自动滑动和按钮的自定义 jquery 图像滑块中的 setInterval 问题

来自分类Dev

分享带有自定义标题,图像,描述的网页帖子

来自分类Dev

自定义SQL查询以获取带有图像的查看最多的帖子

来自分类Dev

自定义帖子类型“ single-custom.php”的下一个和上一个链接陷入循环

来自分类Dev

WordPress的自定义帖子查询滑块

来自分类Dev

WordPress的自定义帖子查询滑块

来自分类Dev

自定义安装PHP

来自分类Dev

自定义安装PHP

来自分类Dev

PHP自定义分页

来自分类Dev

自定义CMS如何使用PHP / MySQL数据库为帖子创建类别

来自分类Dev

将Wordpress帖子重定向到自定义php页面

来自分类Dev

Wordpress PHP循环自定义帖子类型并显示在主页上

来自分类Dev

是否可以在functions.php内使用帖子的自定义元值

来自分类Dev

自定义CMS如何使用PHP / MySQL数据库为帖子创建类别

来自分类Dev

PHP和SQL,查询自定义博客的嵌套年份,月份和帖子数

来自分类Dev

如何以编程方式从自定义PHP应用程序创建WordPress帖子?

来自分类Dev

在第二页中找不到author.php中的分页自定义帖子

来自分类Dev

将Wordpress帖子重定向到自定义php页面

来自分类Dev

自定义帖子类型,单-((post-type} .php

Related 相关文章

  1. 1

    带有自定义帖子的多图像/滑块[single.php]

  2. 2

    php:发布带有图像的帖子

  3. 3

    自定义category.php中的帖子数量

  4. 4

    带有类别特征图像php循环的填充滑块

  5. 5

    如何在PHP中使用带有foreach的数组制作自定义关联数组

  6. 6

    通过PHP将自定义脚本标签转换为带有锚标签的新脚本

  7. 7

    HTML表单-PHP电子邮件,带有自定义消息和复选框

  8. 8

    带有自定义页面选择下拉列表的 PHP 引导程序分页

  9. 9

    带有 php 的 Nginx 自定义 404 页面不起作用

  10. 10

    带有标题,100%宽度和自定义高度的自适应图像滑块

  11. 11

    带有自动滑动和按钮的自定义 jquery 图像滑块中的 setInterval 问题

  12. 12

    分享带有自定义标题,图像,描述的网页帖子

  13. 13

    自定义SQL查询以获取带有图像的查看最多的帖子

  14. 14

    自定义帖子类型“ single-custom.php”的下一个和上一个链接陷入循环

  15. 15

    WordPress的自定义帖子查询滑块

  16. 16

    WordPress的自定义帖子查询滑块

  17. 17

    自定义安装PHP

  18. 18

    自定义安装PHP

  19. 19

    PHP自定义分页

  20. 20

    自定义CMS如何使用PHP / MySQL数据库为帖子创建类别

  21. 21

    将Wordpress帖子重定向到自定义php页面

  22. 22

    Wordpress PHP循环自定义帖子类型并显示在主页上

  23. 23

    是否可以在functions.php内使用帖子的自定义元值

  24. 24

    自定义CMS如何使用PHP / MySQL数据库为帖子创建类别

  25. 25

    PHP和SQL,查询自定义博客的嵌套年份,月份和帖子数

  26. 26

    如何以编程方式从自定义PHP应用程序创建WordPress帖子?

  27. 27

    在第二页中找不到author.php中的分页自定义帖子

  28. 28

    将Wordpress帖子重定向到自定义php页面

  29. 29

    自定义帖子类型,单-((post-type} .php

热门标签

归档