如何修改此代码以包括父级?

时间:2016-11-03 作者:glvr

我使用下面的代码来显示网站页面和模板。

我想知道如何修改它以显示post\\u标题之前的任何家长。

<?php
global $wpdb;

$sql = "SELECT post_title, meta_value
FROM $wpdb->posts a
JOIN $wpdb->postmeta b ON a.ID = b.post_id
WHERE a.post_type = \'page\'
AND a.post_status = \'publish\'
AND b.meta_key = \'_wp_page_template\'
";

$results = $wpdb->get_results( $sql );
if( !empty( $results ) ) {
echo \'<ul>\';
foreach ( $results as $result ) {
echo \'<li>\'. $result->post_title . \': \' . $result->meta_value. \'</li>\';}
echo \'</ul>\';
}
?>
或者,如果有另一种获取父级的方法:页面:模板。

1 个回复
SO网友:CodeMascot

有很多方法可以做到这一点,WordPress有一些默认函数来获取父页面。事实上有一件事叫做post_parent 在里面post 对象但是,我认为您可以使用以下技巧-

  1. get_post_ancestors( $post ) 作用在这里$post 是ID或对象。Here 您可以找到文档。

    也可以使用wp_get_post_parent_id( $post_ID ). Here 您可以找到文档。

    您也可以通过获取post_parent 喜欢$post->post_parent. 然后使用get_post() 或任何其他函数来获取该页变量名。

    希望这件事能有所帮助。

相关推荐

Updating modified templates

我想调整一些。php模板文件在我的WordPress主题中,我知道正确的过程是将相关文件复制到子主题文件夹中并在那里编辑文件,这样我的修改就不会在将来的主题更新中丢失。但这是否意味着我将无法从主题更新中获益,因为我将文件放在了我的子主题文件夹中?这可能不是一件好事,因为主题更新可能添加了一些有用的特性,甚至修复了我最初需要对代码进行调整的问题!这方面的常见解决方案是什么?有人推荐了一款Diff应用程序——这是人们常用的吗?