0

我正在使用自定义简码插件。该插件允许我运行一些 php。php 查询非 wp 数据库以构建车辆规格页面,一切正常。问题是页面标题和描述所需的所有信息都包含在来自数据库的数据中。我已经尝试了一些标准的 wp php 过滤器,但标题没有改变。

这可能不是因为短代码的执行时间吗?

TinyMCE in WP admin. Shortcode
-----------------------------------------------
[myplugin data_id='42']

PHP window in shortcode editor
-----------------------------------------------
$GP=array_merge($_GET, $_POST);

echo "hello word" //works
echo $data_id;  //works
echo $GP[some_post_data]; //works
//connect to database (irrelevant)
echo "the title from data table for data_id 42 = ".$data[title];  //works

// the following has no effect on page title even though $data[title] contains valid data
add_filter('the_title','myCallback'); 
function myCallback($data){ 
  return $data[title]; 
  } 
4

1 回答 1

0

问题是 $data[title] 超出范围,并且您的过滤器回调设置不正确。此外,您应该用引号封装关联索引。

向现有过滤器添加回调时,回调中的参数由过滤器定义传递。案例和要点:过滤标题

the_title 的标准过滤器中的参数是 $title 和 $id。如果要从 $data 数组中返回标题,可以使用全局范围以草率的方式进行:

add_filter('the_title','myCallback'); 
function myCallback($title, $id){
    global $data;
    return $data['title']; 
}

但就个人而言,我会考虑完全避免全局变量并专注于使用自定义过滤器。研究添加你自己的钩子。在掌握了 action hooks 之后,Filter Hooks就很容易掌握了。

于 2012-09-13T02:38:06.543 回答