我想用seo title替换文章标题,如果它存在
我想在下面的查询中包含$wpdb->wp_postmeta.meta_value WHERE $wpdb->wp_postmeta.meta_key = aioseop_title
。
我不确定的是使用什么代码来查找它是否存在。
对于一些帖子,没有aioseop_title。
理想情况下,我想每次都列出post_title,并包括$wpdb->wp_postmeta.metavalue
,如果meta_key = aioseop_title
为每个帖子。
这是在做什么:下面是寻找帖子id来建立一个谷歌新闻站点地图。
我上面的建议将使用seo标题而不是wordpress默认的帖子标题。
$rows = $wpdb->get_results(
"SELECT
$wpdb->posts.ID
, $wpdb->posts.post_date_gmt
, $wpdb->posts.post_title
FROM $wpdb->posts
WHERE $wpdb->posts.post_status='publish'
AND (DATEDIFF(CURDATE(), post_date_gmt)<=30)
$includeMe
ORDER BY $wpdb->posts.post_date_gmt DESC
LIMIT 0, 1000"
);
看完评论澄清一下,也许是这样的?
$rows = $wpdb->get_results(
"SELECT
$wpdb->posts.ID
, $wpdb->posts.post_date_gmt
, $wpdb->posts.post_title
, meta.metavalue
FROM $wpdb->posts
LEFT JOIN $wpdb->wp_postmeta.metavalue AS meta ON meta.post_id = $wpdb->posts.ID AND meta.meta_key = 'aioseop_title'
WHERE $wpdb->posts.post_status='publish'
AND (DATEDIFF(CURDATE(), post_date_gmt)<=30)
$includeMe
ORDER BY $wpdb->posts.post_date_gmt DESC
LIMIT 0, 1000"
);
后面是php中的一个条件来确定aioseop(可能是$row['metavalue'])列是否为空。我没有深入钻研wordpress,不知道确切的列名,但从你所提出的,这可能是你正在寻找的。(顺便说一句,别名'FROM $wpdb->posts'部分也可能更容易。