尝试在wordpress页面代码中运行PHP不会返回任何结果

时间:2017-06-23 13:09:38

标签: php wordpress

您好我正在使用插件(短代码标签顶部和底部)将PHP写入WP页面。

但是,下面的代码不会返回除结果之外的任何结果 “DONE 排列 ( )“

SQL(SELECT ID FROM wiz_posts WHERE post_status ='publish')可以正常使用phpMyAdmin

[insert_php]
global $wpdb;
$myresults =$wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb-
>wiz_posts WHERE post_status = d% ", 'publish') );
echo 'DONE <br>';
print_r ($myresults);
[/insert_php]

我无法弄清楚我做错了什么。有没有帮助老狗学习新技巧?

ps这是在本地主机服务器上运行。

2 个答案:

答案 0 :(得分:0)

有效占位符为:

  • %s代表字符串
  • %d表示整数
  • %f for float

因此,既然您要传入字符串,就要使用%s

$myresults =$wpdb->get_results( $wpdb->prepare( "SELECT ID FROM $wpdb->wiz_posts 
    WHERE post_status = %s ", 'publish') );

答案 1 :(得分:0)

我添加了@aynber提到的占位符更正。另外,在选择表时,您不应使用$wpdb全局变量,因此$wpdb->wiz_posts应为wiz_posts

<?php
global $wpdb;
$myresults =$wpdb->get_results( $wpdb->prepare( "SELECT ID FROM wiz_posts WHERE post_status = %s", "publish") );
echo 'DONE <br>';
print_r ($myresults);
?>