由于没有回复而重新发布。
我在使用 Wordpress SEO API 设置自定义规范标题时遇到一些问题:http://yoast.com/wordpress-seo-api-docs/
我有一个名为 designs 的自定义帖子类型,它使用自定义 URL 重写。 它采用基本页面/design/并添加设计名称,如/design/a-design/。 默认情况下,Wordpress SEO中的规范是/design/页面。
我想做的是编写一个函数来确定它是否是一个设计页面并返回不同的规范。 我可以通过执行if ($design == ""){
来测试它是否是设计页面,并且我尝试使用自定义永久链接URL,但该函数只是完全删除了规范。
这是我的基本功能:
function design_canonical(){
if ($design == "") {
// Leave blank and Yoast SEO will use default canonical for posts/pages
}
else {
return $design['detailslink'];
}
}
add_filter( 'wpseo_canonical', 'design_canonical' )
很明显做错了什么,但我不完全确定是什么。
思潮?
你可以尝试这样的事情:
function design_canonical($url) {
global $post;
if ( get_post_type( $post->ID ) == 'design' ) {
return site_url( '/design/' . $post->post_name );
} else {
// Do nothing and Yoast SEO will use default canonical for posts/pages
return $url;
}
}
add_filter( 'wpseo_canonical', 'design_canonical' );
我无法回答上面的帖子,所以我只是再做一个。
我试图使用隐形忍者的答案来解决类似的问题,它几乎奏效了。除了最后一部分:空的else语句。如果规则不匹配,则不会呈现任何输出。
也许 Yoast 在过去 2 年内更新了他的插件,所以我想我应该在这里提到它。
以下代码片段解决了我的问题:
function design_canonical($url) {
global $post;
if ( get_post_type( $post->ID ) == 'design' ) {
return site_url( '/design/' . $post->post_name );
} else {
return $url;
}
}
add_filter( 'wpseo_canonical', 'design_canonical' );