获取带有页面标题的查询结果

时间:2014-11-13 作者:Cato Cato

我希望通过访问项目详细信息WP_Query 带有页面标题

我尝试了这些代码,但失败了:

<form method="GET" action="">
    <div>
        <input type="text" name="product">
    </div>
    <input type="submit" value="compare">
</form>
<?php  
if(isset($_GET[\'product\']) && !empty($_GET[\'product\'])) {

    $product_title = $_GET[\'product\'];

    $prdocut_id = get_page_by_title($product_title);

    $args = array(\'page_id\' => $product_id);
    $query = new WP_Query($args);

    if($query) :
        while ($query->have_posts()) :
            $query->the_post();
            the_title();
            the_content();
        endwhile;
    endif;
}
?>

1 个回复
最合适的回答,由SO网友:birgire 整理而成

您的get_page_by_title() 用法,因为您假定它返回页面ID,但它返回一个对象/数组或null. 你还必须告诉它你的自定义帖子类型。

我还假设您的产品存储为自定义post type汽车。

请使用给定的产品名称(未测试)尝试以下操作:

// DEBUG: Let\'s first try out an existing product title:
$product_title = \'Some product title\'; #<-- Adjust this to your needs!

// User input:
// $product_title = filter_input( INPUT_GET, \'product\', FILTER_SANITIZE_STRING );

// Search for pages with the above product title:
$product = get_page_by_title( $product_title, $output = OBJECT, $cpt = \'cars\' );

// Product exists:
if( $product ) {
    $query = new WP_Query( array( \'p\' => $product->ID ) );
    if( $query->have_posts() ) {
        while ($query->have_posts()) {
            $query->the_post();
            the_title();
            the_content();
        } 
    }
}
希望这可以成为进一步调试的起点。

结束

相关推荐

Add sidebar in inner pages

我是wordpress编码新手。我想在主页以外的页面上添加一个侧边栏,这两个页面都是我的自定义模板。我想在管理员列表,以便管理员可以编辑侧边栏的内容。此外,我是否需要创建小部件来显示每个边栏?