你需要的是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\' );
The
else
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\' );
也就是说,通常通过一个参数过滤拉入内容并将该内容传递回,但我不使用该插件。