创建特定类型的WordPress帖子的“词汇表”

时间:2017-11-24 作者:Jason Caldwell

好的,下面是我想做的。我想用特定帖子类型的WordPress帖子创建一个“词汇表”。换句话说,每个术语表条目的“标题”和“描述”将从每个帖子中的元值中提取出来。最后,它应该是这样的,其中每个“条目”都是从帖子中生成的:

A
Android: Description
Apple: Description
Aztec: Description

B
Bacon: Description

C
Cat: Description
Category: Description
每个词汇表条目的“标题”和“描述”都是从各自帖子中的元值中提取出来的。到目前为止我掌握的代码:

// A function to display recent glossary posts
function list_glossary_posts() {
global $post;
$args = array( \'posts_per_page\' => -1, \'post_type\' => \'crb_glossary\', \'orderby\'=> \'meta_value\', \'meta_key\' => \'glossary_title\', \'order\' => \'ASC\' );
$postslist = get_posts( $args );
ob_start();


foreach ( $postslist as $post ) :

  setup_postdata( $post );

  $glossary_title = get_post_custom_values($key = \'glossary_title\');
  $glossary_description = get_post_custom_values($key = \'glossary_description\');
  $glossary_letter = substr($glossary_title[0], 0, 1);

  ?>

  <h3><?php echo $glossary_letter; ?></h3>
    <p><a href="<?php the_permalink(); ?>"><?php echo $glossary_title[0]; ?></a>: <?php echo $glossary_description[0]; ?></p>
  <?php

endforeach;

wp_reset_postdata();

$output = ob_get_clean();
return $output;

}

// A shortcode for the glossary
add_shortcode(\'list_glossary_posts\', \'list_glossary_posts\');
这就是我正在努力解决的问题。我希望每个都是独一无二的$glossary_letter 要显示一次的变量。例如,我不想这样:

A
Android: Description

A
Apple: Description

A
Aztec: Description

B
Bacon: Description

C
Cat: Description

C
Category: Description
救命啊!

1 个回复
SO网友:dperezac

声明一个$previous\\u letter变量,并在foreach的末尾为其指定当前$glossary\\u letter的值。在显示$glossary\\u字母之前做一个if条件。如果$glossary\\u字母与$previous\\u字母不同,则显示它。

$previous_letter = null;

foreach ( $postslist as $post ) :

  setup_postdata( $post );

  $glossary_title = get_post_custom_values($key = \'glossary_title\');
  $glossary_description = get_post_custom_values($key = \'glossary_description\');
  $glossary_letter = substr($glossary_title[0], 0, 1);

  ?>

  if ( $glossary_letter !== $previous_letter ):
      <h3><?php echo $glossary_letter; ?></h3>
  endif;

    <p><a href="<?php the_permalink(); ?>"><?php echo $glossary_title[0]; ?></a>: <?php echo $glossary_description[0]; ?></p>
  <?php

$previous_letter = $glossary_letter;
endforeach;

结束

相关推荐

子主题函数.php文件中的出列是否会阻止加载Google字体?

我使用的是1.0.8版的盾徽主题。在搜索了我所有主题的文件后,我看到谷歌字体引用的唯一地方是在函数中。php。正在退出子函数中的Google字体队列。php文件足以阻止在我的网站上加载Google字体,否则$fonts_url = add_query_arg( $query_args, \'https://fonts.googleapis.com/css\' );在我的父函数中。php文件仍然会触发对Google字体服务器的调用,即使子文件运行正常。php文件出列了吗?下面是子函数。我希望php代码能够完