我正在尝试从我的一边到另一边获取特定的帖子提要。一切正常,我唯一需要检查的是,如果自定义字段未能成功获取提要,它应该返回错误或自定义消息。
这是我迄今为止尝试过的代码,我试图检查帖子标题长度,如果它大于零,则显示feed else,返回error。但它不起作用。任何想法。
<?php
include_once(ABSPATH . WPINC . \'/rss.php\');
$feed = \'http://ar.mysite.com/feed/?translate_id=P1511\';
$rss = fetch_feed($feed);
$maxitems = $rss->get_item_quantity(1);
$rss_items = $rss->get_items(0, $maxitems); echo $maxitems ;
//if ($rss_items):
echo "<ul class=\'feedclass\'>\\n";
foreach ( $rss_items as $item ) :
$feedtitle = $item->get_title() ; // echo $feedtitle ;
if (strlen($feedtitle) > 0) {
printf(\'<li><a href="%s">%s</a><p>%s</p></li>\',$item->get_permalink(),$item->get_title(),$item->get_description() );
}
else {
echo \'This recipe is not translated yet\';
}
endforeach;
echo "</ul>\\n";
//endif;
?>
下面的代码在query\\u var中添加translate\\u id
/**
*
* @param array $query_vars
* @return array $query_vars
*/
function my_query_vars( $query_vars )
{
$query_vars[] = \'translate_id\';
return $query_vars;
}
add_filter( \'query_vars\', \'my_query_vars\' );
/**
* Filter the feed by the \'translate_id\' meta key
*
* @param WP_Query object $query
* @return void
*/
function my_pre_get_posts( $query )
{
// only for feeds
if( $query->is_feed && $query->is_main_query() )
{
// check if the translate_id variable is set
if( isset( $query->query_vars[\'translate_id\'] )
&& ! empty( $query->query_vars[\'translate_id\'] ) )
{
// if you only want to allow \'alpha-numerics\':
$translate_id = preg_replace( "/[^a-zA-Z0-9]/", "", $query->query_vars[\'translate_id\'] );
// set up the meta query for translate_id
$query->set( \'meta_key\', \'translate_id\' );
$query->set( \'meta_value\', $translate_id );
}
}
}
add_action( \'pre_get_posts\', \'my_pre_get_posts\' );