我正在为客户创建一个自定义主题,以便与最新的 Wordpress 版本一起使用。在这个主题中,页面的名称(Contact、About 等)包含在 div#pageTitle 中。此 div 还根据站点的部分分配了一个类(例如“aboutTitle”)。编写 CSS 以在页面名称旁边显示一个图标,并为每个类分配一个不同的图标。预期结果是站点单个部分中的所有页面都应显示专门用于该部分的图标。(例如:所有“关于”页面应该有一个图标,所有“文章”应该有一个不同的图标,等等)
在这种特殊情况下,有一个名为“About Us”的顶级页面。“关于我们”下有一些子页面。我希望“关于我们”及其所有子页面显示一个特定的图标,并且我希望基于写入 functions.php 的函数将用于显示它的类动态写入 html。(当然,其他页面、部分等也会有自己的关联图标。)
我写了我的想法可行的东西,它确实写在适当的类中……除了它为站点中的每一页都写了那个类!谁能解释我做错了什么,以及要进行哪些更正以达到预期的结果?
我在functions.php中包含的代码如下:
// Identify the post title of the parent page
function parentPostTitle() {
/* is it a page */
if( is_page() ) {
global $post;
/* Get an array of Ancestors and Parents if they exist */
$parents = get_post_ancestors( $post->ID );
/* Get the top Level page->ID count base 1, array base 0 so -1 */
$id = ($parents) ? $parents[count($parents)-1]: $post->ID;
/* Get the parent and set the $parentPostTitle with the page title (post_title) */
$parent = get_page( $id );
$parentPostTitle = $parent->post_title;
}
}
// Enable dynamic PageTitle Classes
function dynamicPageTitleClass() {
if (is_page("About Us") || ($parentPostTitle="About Us")) {
echo ' class="aboutTitle"';
} elseif (is_page("Contact Us")) {
echo ' class="contactTitle"';
} elseif (in_category("articles")) {
echo ' class="articlesTitle"';
} elseif (in_category("blogs")) {
echo ' class="blogTitle"';
} elseif (in_category("videos")) {
echo ' class="videosTitle"';
} else {
echo ' class=""';
}
}
提前感谢您的时间和帮助。