RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 693954
Accepted
siberian
siberian
Asked:2020-07-19 14:10:49 +0000 UTC2020-07-19 14:10:49 +0000 UTC 2020-07-19 14:10:49 +0000 UTC

检查循环外的自定义字段值

  • 772

我在项目中使用 ACF,我创建了一个自定义字段true/false。

有必要在一个块中显示带有字段的帖子active,而在另一个块中显示其余部分。

该代码具有以下结构:

<?php
$args = array(
    'post_type' => 'client',
    'post_status'=>'publish',
    'posts_per_page'=>-1,
);
$the_query = new WP_Query( $args );
?>


<?php if ( get_field( 'is_active') ) : ?>

    <div class="bg-gray">
        <div class="container">
            <h2 class="page-head_sub-title">aktive </h2>

<?php else: ?>

    <div class="bg-white no-active">
        <div class="container">
            <h2 class="page-head_sub-title">not active</h2>
<?php endif; ?>



        <div class="row equal customers-wrap">

            <?php if ( have_posts() ) : ?>
                <?php $e = 0; ?>

                <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

                    <?php
                    $is_active = get_field('is_active');
                    //var_dump($is_active);
                    ?>
                    <div class="col-md-3 col-md-3 d-flex pb-3 ">
                        <a href="#galleryClients" class="card card-block" data-slide-to="<?php echo $e; ?>">
                            <?php
                                $thumbnail_id = get_post_thumbnail_id();
                                $thumbnail_url = wp_get_attachment_image_src( $thumbnail_id, 'thumbnail-size', true );
                            ?>
                            <div class="item" data-toggle="modal" data-target="#clientModal">
                                <div class="customers-wrap_item ">
                                    <img class="img-fluid" src="<?php echo $thumbnail_url[0]; ?>" alt="<?php the_title(); ?>" />
                                </div>
                            </div>
                        </a>
                    </div>
                    <?php $e++; ?>
                <?php endwhile; ?>

但是这段代码没有按预期工作。很可能是因为现场检查发生在循环之外。如果您在循环内部检查,代码将起作用,但它会改变html.

如何调用检查后循环外的字段中是否存在值?

更新程序

指定id显示帖子的页面:

<?php
$args = array(
    'post_type' => 'client',
    'post_status'=>'publish',
    'posts_per_page'=>-1,
);
$the_query = new WP_Query( $args );

 ?>


<?php if ( get_field( 'is_active', 289) ) : ?>

<?php
$is_active = get_field('is_active', 289);
var_dump($is_active);
?>

    <div class="bg-gray">
        <div class="container">
            <h2 class="page-head_sub-title">active </h2>

<?php else: ?>

    <div class="bg-white no-active">
        <div class="container">
            <h2 class="page-head_sub-title">not active</h2>
<?php endif; ?>

但var_dump($is_active);它不输出任何值,因为 在循环之外。

预期的结构html是:

如果帖子被检查为活跃

    <div class="bg-gray">
        <div class="container">
            <h2 class="page-head_sub-title">active </h2>
            <?php the_post ?> 
        </div>
    </div>

如果帖子未被勾选为活动状态

<div class="bg-white no-active">
        <div class="container">
            <h2 class="page-head_sub-title">not active </h2>
            <?php the_post ?>
        </div>
    </div>

更新 1.0

借助此代码,可以显示状态为not active的帖子:

<?php
$args = array (
    'post_type' => 'client',
    'post_status'=>'publish',
    'posts_per_page'=>-1,
    'meta_query' => array (
        array (
            'value' => '0'

        )
    )


);
$the_query = new WP_Query( $args );

?>
php
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. KAGG Design
    2020-07-19T14:26:43Z2020-07-19T14:26:43Z

    get_field() 函数有第二个参数 $post_id。默认情况下,这是循环中的当前帖子。在循环之外,帖子编号未定义,并且 get_field() 返回谁知道什么(很可能是空值)。在循环外,您需要像这样指定 $post_id:

    get_field( 'is_active', $post_id) ;
    

    您将从所需的帖子中获得必填字段的值。

    if ( have_posts() )保存html结构,在循环中获取posts的is_active字段的值,还需要把while上面is_active字段的检查也移过去:

    <?php
    $args = array(
        'post_type' => 'client',
        'post_status'=>'publish',
        'posts_per_page'=>-1,
    );
    $the_query = new WP_Query( $args );
    ?>
    
    
    <?php if ( have_posts() ) : ?>
        <?php $e = 0; ?>
        <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    
            <?php
            $is_active = get_field('is_active');
            ?>
    
    
            <?php if ( $is_active ) : ?>
    
                <div class="bg-gray">
                    <div class="container">
                        <h2 class="page-head_sub-title">aktive </h2>
    
            <?php else: ?>
    
                <div class="bg-white no-active">
                    <div class="container">
                        <h2 class="page-head_sub-title">not active</h2>
    
            <?php endif; ?>
    
                        <div class="row equal customers-wrap">
    
                            <div class="col-md-3 col-md-3 d-flex pb-3 ">
                                <a href="#galleryClients" class="card card-block" data-slide-to="<?php echo $e; ?>">
                                    <?php
                                        $thumbnail_id = get_post_thumbnail_id();
                                        $thumbnail_url = wp_get_attachment_image_src( $thumbnail_id, 'thumbnail-size', true );
                                    ?>
                                    <div class="item" data-toggle="modal" data-target="#clientModal">
                                        <div class="customers-wrap_item ">
                                            <img class="img-fluid" src="<?php echo $thumbnail_url[0]; ?>" alt="<?php the_title(); ?>" />
                                        </div>
                                    </div>
                                </a>
                            </div>
    
                        <?php $e++; ?>
                    <?php endwhile; ?>
    
    • 2
  2. Best Answer
    siberian
    2020-07-20T13:11:26Z2020-07-20T13:11:26Z

    要输出活动,我使用代码:

    <?php
    $args = array(
    'post_type' => 'client',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => 'is_active',
            'compare' => '==',
            'value' => '1'
        )
    )
    );
    $the_query = new WP_Query($args);
    ?>
    

    要显示not active ,我使用代码:

    <?php
    $args = array(
    'post_type' => 'client',
    'post_status' => 'publish',
    'posts_per_page' => -1,
    'meta_query' => array(
        array(
            'key' => 'is_active',
            'compare' => '==',
            'value' => '0'
        )
    )
    );
    $the_query = new WP_Query($args);
    ?>
    
    • 0

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5