Yoast插件的SEO定制功能

时间:2013-03-28 作者:Jen

我们对一些索引/根站点页面使用了非常定制的WordPress版本,其中使用了定制的元框来定制永久链接。我们正在寻找的是一个自定义函数,它主要查看是否正在使用自定义永久链接字段,如果正在使用,则获取该字段作为规范url。这有助于搜索引擎索引重复内容,我们正准备使用Outbrain,它将对我们的规范URL进行爬行。

我遇到了这篇关于堆栈溢出的文章,但不确定如何根据需要进行编辑。

function design_canonical() {
   global $post;

   if ( get_post_type( $post->ID ) == \'design\' ) {
       return site_url( \'/design/\' . $post->post_name );
   } else {
       // Leave blank and Yoast SEO will use default canonical for posts/pages
   }
}
add_filter( \'wpseo_canonical\', \'design_canonical\' )
我在想post->ID 不需要\'design\' 以及return site_url 应该是我的自定义元框。如何正确编辑?

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

你需要的是get_post_meta 而不是get_post_type

这是:

if ( get_post_type( $post->ID ) == \'design\' ) {
应为:

$meta = get_post_meta($post->ID,\'your-meta-key\',true);
if (!empty($meta)) {
放在一起

function design_canonical_wpse_93717() {
   global $post;
   $meta = get_post_meta($post->ID,\'your-meta-key\',true);
   if (!empty($meta)) {
       return $meta; // assuming this is an absolute URL
   }
}
add_filter( \'wpseo_canonical\', \'design_canonical_wpse_93717\' );
Theelse conditional是虚假的,所以我删除了它,并且我假设过滤器按照广告的方式工作。我不使用WP-SEO。

另外,我有点担心,因为过滤器通常是这样工作的:

function design_canonical_wpse_93717($url) {
   global $post;
   $meta = get_post_meta($post->ID,\'your-meta-key\',true);
   if (!empty($meta)) {
       $url = $meta; // assuming this is an absolute URL
   }
   return $url;
}
add_filter( \'wpseo_canonical\', \'design_canonical_wpse_93717\' );
也就是说,通常通过一个参数过滤拉入内容并将该内容传递回,但我不使用该插件。

结束

相关推荐

只在本地主机上运行的Functions.php代码?

我想在函数中运行add\\u操作。仅当主题是从我的localhost开发站点加载时才使用php。如何使其仅在本地主机上运行?function livereload(){ ?> // mycode <?php } add_action(\'headway_body_close\', \'livereload\');