用ACF将Post对象标题输出为div类

时间:2014-02-07 作者:Bojana Šekeljić

我已经为页面设置了Post对象字段。我想做的是将与页面关联的帖子的标题输出为围绕页面列表的div类。但是,foreach循环中的代码没有被执行。我尝试过setup\\u postdata($post),但根据ACF文档,没有,结果总是一样的。

代码如下:

function pages() {
$args = array(
    \'post_type\' => \'page\'
    );
$pages = get_posts($args);
    foreach ($pages as $page) {?>
        <div class=" <?php 
            $ancestors = get_field(\'ancestor\');
                foreach ($ancestors as $ancestor) {
                    $class_ancestor_raw = get_the_title($ancestor->ID);
                    $class_ancestor_temp = explode(\' \', $class_ancestor_raw);
                    $class_ancestor_str = implode(\'-\', $class_ancestor_temp);
                    $class_ancestor = strtolower($class_ancestor_str);
                    echo $class_ancestor;
                }

        ?>">
            <?php echo $page->post_title; ?>
        </div>
        ?>
    <?php } ?> 

2 个回复
最合适的回答,由SO网友:socki03 整理而成

看起来您缺少get\\u字段函数中的$page->ID。

$ancestors = get_field(\'ancestor\', $page->ID);

SO网友:Milo

您没有将页面ID传递给get_field, 所以你想把ancestor 对于包含此代码的页面,而不是foreach.

$ancestors = get_field(\'ancestor\', $page->ID);
您还可以使用sanitize_title 功能-

$class_ancestor = sanitize_title( get_the_title($ancestor->ID) );

结束

相关推荐

用ACF将Post对象标题输出为div类 - 小码农CODE - 行之有效找到问题解决它

用ACF将Post对象标题输出为div类

时间:2014-02-07 作者:Bojana Šekeljić

我已经为页面设置了Post对象字段。我想做的是将与页面关联的帖子的标题输出为围绕页面列表的div类。但是,foreach循环中的代码没有被执行。我尝试过setup\\u postdata($post),但根据ACF文档,没有,结果总是一样的。

代码如下:

function pages() {
$args = array(
    \'post_type\' => \'page\'
    );
$pages = get_posts($args);
    foreach ($pages as $page) {?>
        <div class=" <?php 
            $ancestors = get_field(\'ancestor\');
                foreach ($ancestors as $ancestor) {
                    $class_ancestor_raw = get_the_title($ancestor->ID);
                    $class_ancestor_temp = explode(\' \', $class_ancestor_raw);
                    $class_ancestor_str = implode(\'-\', $class_ancestor_temp);
                    $class_ancestor = strtolower($class_ancestor_str);
                    echo $class_ancestor;
                }

        ?>">
            <?php echo $page->post_title; ?>
        </div>
        ?>
    <?php } ?> 

2 个回复
最合适的回答,由SO网友:socki03 整理而成

看起来您缺少get\\u字段函数中的$page->ID。

$ancestors = get_field(\'ancestor\', $page->ID);

SO网友:Milo

您没有将页面ID传递给get_field, 所以你想把ancestor 对于包含此代码的页面,而不是foreach.

$ancestors = get_field(\'ancestor\', $page->ID);
您还可以使用sanitize_title 功能-

$class_ancestor = sanitize_title( get_the_title($ancestor->ID) );

相关推荐