将ACF自定义字段附加到页面标题

时间:2017-11-27 作者:andersonslookout

到目前为止,我已经获得了下面的代码,达到了我想要的效果,但它只将当前页面的标题附加到页面上的每个页面标题上(包括明显具有不同标题的下一个/上一个链接),因此我显然需要从这些帖子中检索自定义字段值,但我很难做到这一点。

    add_filter( \'the_title\', \'post_title_append_alt_lang\' );
       function post_title_append_alt_lang( $title ) {

         if( get_field( \'post_title_text_alt_language\' ) && in_the_loop() ){ 
              return $title.\' <span class="chinese_trad" lang="\' 
              . get_field(post_title_language) . \'">\' 
              . get_field(post_title_text_alt_language)
              . \'</span>\';
           }
           return $title;
       }
我知道我需要以某种方式将检索到的自定义字段与帖子ID联系起来,但我不确定这样做的最佳方式是否适用于页面上可能出现的任何帖子。

任何帮助都将不胜感激,谢谢!

2 个回复
SO网友:Marcelo Henriques Cortez

如果您需要在每个post\\u标题中添加内容,您应该:

使用WP Query, check Codex

然后,使用get_the_ID, 要获取特定的帖子ID,check Codex

然后,使用ID从该特定帖子中获取ACF字段,如get_field(\'name-of-the-field), check the documentation

别忘了使用wp_reset_query(), check the Codex

SO网友:andersonslookout

好的,我最终找到了一个解决方案。以下是我使用的函数:

function add_custom_field_after_title($title, $id) {

  if ( in_the_loop() ) {

      $custom_field = get_field( \'customfield\', $id );

      if ( !empty($custom_field) ){
        $title .= $custom_field;
      }
   }

  return $title;
  }

add_filter(\'the_title\',\'add_custom_field_after_title\',10,2);

结束