Php Wordpress-按自定义字段获取帖子

Php Wordpress-按自定义字段获取帖子,php,wordpress,Php,Wordpress,我正在尝试为我的博客制作一个Wordpress插件,用于扫描包含自定义字段\u videoembed的帖子。我已经做了所有的事情,并且它正确地激活了,但是当我打开一个页面进行测试时,我收到了一个PHP错误: 致命错误:在第26行的…/wp content/plugins/youtubesubscription/videos.php中对非对象调用成员函数get_results()。 有人对PHP有足够的了解来帮助我吗?以下是我的插件代码(由于大小的原因粘贴在pastebin上): 编辑1 在插入

我正在尝试为我的博客制作一个Wordpress插件,用于扫描包含自定义字段
\u videoembed
的帖子。我已经做了所有的事情,并且它正确地激活了,但是当我打开一个页面进行测试时,我收到了一个PHP错误:

致命错误:在第26行的…/wp content/plugins/youtubesubscription/videos.php中对非对象调用成员函数get_results()。

有人对PHP有足够的了解来帮助我吗?以下是我的插件代码(由于大小的原因粘贴在pastebin上):

编辑1

在插入
global$wpdb之后,我不再收到任何错误但是现在什么都没有显示。这是我的更新代码:。注意,此代码还包含自动YouTube缩略图,这些缩略图是从将YouTube URL修剪到ID(链接)的函数中获得的

编辑2

让它工作起来,我所需要做的就是插入'\u videoembed'作为wp_查询的'meta_key'参数。下面是我的工作代码:

<?php
    $args = array(
        'meta_key' => '_videoembed',
        'post_status'     => 'publish',
        'posts_per_page'    => '' . $number . '',
        'order'    => 'date'
    );
    query_posts( $args );

    while ( have_posts() ) : the_post(); ?>
        <?php 
        global $post;
        $VIDEOID = ytvideoID($post->ID); 
        ?>
        <li onClick="window.location.href='<?php the_permalink(); ?>'">

            <?php
                global $post;
                $videoId = ytvideoID($post->ID);
                $videoInfo = parseVideoEntry($videoId);
                echo '<a href="'.get_permalink().'">';
                    echo '<div class="image">';
                        echo '<img src="http://img.youtube.com/vi/'.$VIDEOID.'/default.jpg">';
                        echo '<div id="time" style="position:absolute;z-index:9;bottom:2px;right:2px;font-size:10px;color:#fff;background:#000;padding:0px 2px;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;opacity:0.75;">'.hms($videoInfo->length).'</div>';
                    echo '</div>';
                echo '<h4>'.get_the_title().'</h4>';
                echo '<div id="description">';
                    echo '<div id"views"><h3>'.number_format($videoInfo->viewCount).' Views</h3></div>';
                    echo '<div class="singleauthor"><h3>by '.$videoInfo->author.'</h3></div>';
                echo '</div>';
                echo '</a>';
            ?>
        </li>
    <?php endwhile;

    // Reset Query
    wp_reset_query();

    ?>



第26行似乎缺少分号

我明白了:

$pageposts=$wpdb->get_results($querydetails,OBJECT_K)
您必须添加
全局$wpdb

试着替换

function mbrecentvids()
{ ?>
<?php

您可以使用meta_查询获得post by自定义字段

 $args= array(
    'category_name' => 'courses',
    'orderby'       => 'menu_order',
    'order'         => 'ASC',
    'meta_query' => array(
        array(
            'key'     => 'front_page',
            'value'   => 'yes',
            'compare' => 'LIKE',
        ))

);

$the_query = new WP_Query( $args );
有关更多详细信息,请参阅我的教程。

感谢您的快速回复。我尝试添加一个分号,但调用非object时仍然出现错误。仍然没有成功。我没有收到任何错误,但什么都没有显示。下面是我的更新代码:现在可能是您的查询了,您是否尝试过在mysql或phpmyadmin中运行它?尝试向代码中添加
echo
,以查看是否可以访问。嗯,我在页脚中单独设置了它,但我想用它制作一个小部件。当它被放置在那里时运行良好,但不在小部件中。您可以尝试添加
error\u reporting(E\u ALL)位于代码顶部,查看是否存在任何禁止的错误
 $args= array(
    'category_name' => 'courses',
    'orderby'       => 'menu_order',
    'order'         => 'ASC',
    'meta_query' => array(
        array(
            'key'     => 'front_page',
            'value'   => 'yes',
            'compare' => 'LIKE',
        ))

);

$the_query = new WP_Query( $args );