GET_PAGE_BY_PATH()与WP_QUERY一起使用时出现问题

时间:2019-06-08 作者:Zahid Hossain

在php类中将get\\u page\\u by\\u path()与WP\\u查询一起使用时,会出现错误。我使用after_switch_themeswitch_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())

有没有办法解决这个问题???谢谢

1 个回复
最合适的回答,由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 );
    }
}

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post