如何在loop_end之后将内容插入wp_head

时间:2015-05-26 作者:ddrjm

我正在尝试访问帖子上的信息,这样我就可以获得帖子标题和帖子内容,这样我就可以生成相应的OG标签,放在标题中。问题是该信息仅在loop\\u结束后可用。在那个动作发生后,我怎样才能插入头部呢?

编辑:下面是正在使用的代码

<?php
/**
 * *snip*
 * standard plugin info
 * *snip*
 */

$jobTitle ="";
$jobDescription ="";

function getJobInfo() {
    global $jobTitle,$jobDescription;
    if (is_single()) {
        $jobTitle = get_jobs()->get("job_title");
        $jobDescription = get_jobs()->get("job_description");
    }
}

add_action("loop_end", \'getJobInfo\'); // the info is only available on this hook since this is part of a plugin that modifies some pages.

function generateOGtag(){
    global $jobTitle,$jobDescription;
    echo "<meta property=\'og:title\' content=\'$jobTitle\'>\\n";
    echo "<meta property=\'og:title\' content=\'$jobDescription\'>\\n";
}
add_action("wp_head", \'generateOGtag\'); 
根据wordpress插件参考,它确实指出wp_head 在之前加载loop_end 那么,我如何从loop_end 进入的操作wp_head 行动

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

因为您使用的插件在loop_end 钩子,将信息输入标题将很棘手。我只能想到两种方法:

页面加载后,使用Javascript将数据插入页眉。我不知道这是否有效。我不确定是否会尊重“og”标题/ol>


function generateOGtag(){
  if (is_single()) {
    global $wp_query;
    if (have_posts()) {
      while (have_posts()) {
        the_post();
        // no idea if your plugin needs anything else here
      }
    }
    $jobTitle = get_jobs()->get("job_title");
    $jobDescription = get_jobs()->get("job_description");
    echo "<meta property=\'og:title\' content=\'$jobTitle\'>\\n";
    echo "<meta property=\'og:title\' content=\'$jobDescription\'>\\n";
    wp_reset_query();
    wp_reset_postdata();
  }
}
add_action("wp_head", \'generateOGtag\');
这显然是一个劳动密集型过程,因为代码将运行两次。

结束

相关推荐

Hooks for Links Box

Possible Duplicate:Getting archive pages in WP's AJAX internal link finder? 新的有挂钩吗internal links box 创建于WP 3.1? 我正在尝试在插件中修改它。