在php类中将get\\u page\\u by\\u path()与WP\\u查询一起使用时,会出现错误。我使用after_switch_theme 和switch_theme 在那个班。当主题被激活时,一切都如预期的那样好。但问题是,当我切换主题时,浏览器会显示一个错误。
可捕获的致命错误:在C:\\wamp\\www\\wordpress主题测试\\WP includes\\post中,类WP\\U查询的对象无法转换为字符串。php在线4470
我试着找出错误`
public function theme_deactivation() {
$pages = array( \'member-login\', \'member-account\', \'member-register\', \'member-password-lost\', \'member-password-reset\' );
foreach ( $pages as $slug ) {
$query = new WP_Query( \'pagename=\' . $slug );
$page = get_page_by_path( $query );
wp_delete_post( $page->ID, true );
}
}
我认为,主要问题是get\\u page\\u by\\u path()。它的第一个也是必需的参数是$page\\u path(string),WP\\u Query是一个对象。和错误说明
WP_Query could not be converted to string (对于get\\u page\\u by\\u path())
有没有办法解决这个问题???谢谢
最合适的回答,由SO网友:Jacob Peattie 整理而成
尝试将查询结果传递给get_page_by_path()
. 的要点WP_Query
是根据给定的条件查询所选的职位,而get_page_by_path()
用于根据路径检索单个特定帖子。你没有理由把它们一起使用。
如果要根据帖子的slug删除帖子,则根本不需要查询:
$pages = array( \'member-login\', \'member-account\', \'member-register\', \'member-password-lost\', \'member-password-reset\' );
foreach ( $pages as $slug ) {
$page = get_page_by_path( $slug );
if ( $page ) {
wp_delete_post( $page->ID, true );
}
}