Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在另一个自定义帖子中查询自定义帖子_Php_Wordpress - Fatal编程技术网

Php 在另一个自定义帖子中查询自定义帖子

Php 在另一个自定义帖子中查询自定义帖子,php,wordpress,Php,Wordpress,我在wordpress开发中有两种类型的自定义帖子。一种是餐厅列表,另一种是评论。在餐厅列表的单个页面中,我还想显示评论 我已经试过了 //发布餐厅列表的内容 //“评论”的帖子内容 全球$wpdb; $title=获取标题(获取ID()); $sql=“从{$wpdb->prefix}帖子中选择*,其中post_title=”$标题 $results=$wpdb->get_results($sql,“ARRAY_A”); 打印(结果); 虽然我有两篇文章要查看,但是它没有显示任何关于$re

我在wordpress开发中有两种类型的自定义帖子。一种是
餐厅列表
,另一种是
评论
。在
餐厅列表
的单个页面中,我还想显示
评论

我已经试过了

//发布餐厅列表的内容
//“评论”的帖子内容
全球$wpdb;
$title=获取标题(获取ID());
$sql=“从{$wpdb->prefix}帖子中选择*,其中post_title=”$标题
$results=$wpdb->get_results($sql,“ARRAY_A”);
打印(结果);

虽然我有两篇文章要查看,但是它没有显示任何关于
$results
的内容,因为SQL字符串包含一个错误:您需要在SQL字符串中用引号括起$title

$sql = "SELECT * FROM {$wpdb->prefix}posts WHERE post_title = '" . esc_sql($title) . "'";
请注意准备用于sql查询字符串的$title变量的
esc_sql()
函数

更好的是,您可以使用
$wpdb->prepare()
方法:

$sql = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}posts WHERE post_title = %s", $title);

您的查询不会返回所需的结果,因为SQL字符串包含一个错误:您需要在SQL字符串中用引号括起$title

$sql = "SELECT * FROM {$wpdb->prefix}posts WHERE post_title = '" . esc_sql($title) . "'";
请注意准备用于sql查询字符串的$title变量的
esc_sql()
函数

更好的是,您可以使用
$wpdb->prepare()
方法:

$sql = $wpdb->prepare("SELECT * FROM {$wpdb->prefix}posts WHERE post_title = %s", $title);

您永远不应该直接向DB查询post列表。WordPress有多种方法可以使过程变得更好、更清晰。整个平台基于帖子,因此有很多功能可以让你的生活变得轻松

这是如何满足您需求的一个非常基本的示例:

$reviews = get_posts( array(
    'post_type'   => 'reviews'
) );

if ( $reviews ) {
    foreach ( $reviews as $post )
    {
        setup_postdata( $post );
?>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <?php the_content(); ?>
<?php
    }
    wp_reset_postdata();
}
$reviews=get\u posts(数组(
“发布类型”=>“评论”
) );
如果($审查){
foreach($post作为$reviews)
{
设置_postdata($post);
?>

你永远不应该直接查询数据库中的帖子列表。WordPress有多种方法可以让这个过程更好、更清晰。整个平台都是基于帖子的,所以有很多功能可以让你的生活更轻松

这是如何满足您需求的一个非常基本的示例:

$reviews = get_posts( array(
    'post_type'   => 'reviews'
) );

if ( $reviews ) {
    foreach ( $reviews as $post )
    {
        setup_postdata( $post );
?>
        <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <?php the_content(); ?>
<?php
    }
    wp_reset_postdata();
}
$reviews=get\u posts(数组(
“发布类型”=>“评论”
) );
如果($审查){
foreach($post作为$reviews)
{
设置_postdata($post);
?>