我需要使用自定义元描述替换header.php中wp_head()函数生成的现有<meta name="description"...>
。页面中的信息不是常规的wordpress帖子,取自外部数据库。
我能够添加我的自定义元,但旧的也是
function add_meta_tags()
{
global $data;
if(!is_null($data['metas']['page_meta_description']) )
{
echo '<meta name="description" content="'.$data['metas']['page_meta_description'].'">';
}
}
add_action('wp_head', 'add_meta_tags');
有没有办法: - 删除带有操作或过滤器的默认元描述 function.php?要么, - 在呈现之前以某种方式替换元描述的值?
答案 0 :(得分:3)
描述元标记通常由模板标题(header.php)或通过将描述添加到网站的插件(例如SEO标题标记)来处理。由于您获得了重复的描述,因此应检查输出描述标记的插件。
对于其他烦人的元标记和标题中的其他内容,您可以使用模板的functions.php文件中的remove_action()函数来执行此操作,并可以在此处查看文档:{{3}} < / p>
我为我运行的WP站点执行类似的操作,并且需要删除进入头部的每个元标记,这里是我在functions.php文件底部的代码:
// Remove Meta Tags that are Unneeded
remove_action('wp_head','feed_links_extra', 3);
remove_action('wp_head','rsd_link');
remove_action('wp_head','feed_links', 2);
remove_action('wp_head','wlwmanifest_link');
remove_action('wp_head','index_rel_link');
remove_action('wp_head','parent_post_rel_link', 10, 0);
remove_action('wp_head','start_post_rel_link', 10, 0);
remove_action('wp_head','adjacent_posts_rel_link', 10, 0);
remove_action('wp_head','noindex');
remove_action('wp_head','wp_generator');
remove_action('wp_head','rel_canonical');
remove_action('wp_head', 'wp_shortlink_wp_head');
显然,只使用你需要的!我无法找到元标记的所有函数列表,因此我想要包含我使用过的所有函数。
答案 1 :(得分:1)
安装Yoast插件,您可以通过手动将其添加到搜索引擎结果页面上来生成元标记。
答案 2 :(得分:0)
function remove_meta_descriptions($html) {
$pattern = '/<meta name(.*)=(.*)"description"(.*)>/i';
$html = preg_replace($pattern, '', $html);
return $html;
}
function clean_meta_descriptions($html) {
ob_start('remove_meta_descriptions');
}
add_action('get_header', 'clean_meta_descriptions', 100);
add_action('wp_footer', function(){ ob_end_flush(); }, 100);