你为什么要比较$post->post_name
到$this->title
? 您应该将slug与slug进行比较。
尝试更改以下比较:
if( strtolower( $page->post_name ) == strtolower( $this->title ) )
。。。对此:
if( strtolower( $page->post_name ) == strtolower( $this->slug ) )
此外,我可能建议您在动态创建的页面中遵守WordPress对象约定,因为这样做可能有助于避免这种混淆。
我会改变这一点:
$cdArray = array( \'title\' => \'Biography\', \'slug\' => \'concert-diary\' );
。。。对此:
$cdArray = array( \'title\' => \'Biography\', \'post_name\' => \'concert-diary\' );
然后更改此选项:
public function __construct( $nameArray ) {
$this->title = $nameArray[\'title\']; //Title of the page
$this->slug = $nameArray[\'slug\']; //Page slug
}
。。。对此:
public function __construct( $nameArray ) {
$this->title = $nameArray[\'title\']; //Title of the page
$this->post_name = $nameArray[\'post_name\']; //Page slug
}
因此,您的比较变成:
if( strtolower( $page->post_name ) == strtolower( $this->post_name ) )
这可能会帮助您避免一些混淆。