Исходная тема: Эхо подзаголовок страницы PARENT в WordPress?
Я обнаружил отдельную потребность в коде Mark, созданном по отношению к исходной теме выше. К счастью, я смог работать с другим членом сообщества, чтобы получить аналогичную функцию для обработки href для того же элемента, который этот вопрос будет связан и с этим.
Мне нужно, чтобы заголовок тега заселялся на основе значения субтитров родительской страницы. Однако, если ни один родитель не установлен, мне нужно, чтобы он был по умолчанию для подзаголовка по умолчанию для всего сайта.
Мы смогли достичь этого для атрибута href здесь: как установить ссылку на основе установленного post_parent – WordPress
Текущий код обрабатывается следующим образом:
<?php if ($post->post_parent) { $permatitle = get_post_meta($post->post_parent, '_base_page_subtitle', true); } else { $permatitle = get_post_meta($post->ID, '_base_page_subtitle', true); } ?> <a href="<?php echo $permalink; ?>" title="<?php echo $permatitle; ?>">
Тем не менее, мне нужно, чтобы он работал и на дочерних страницах. Любая помощь будет оценена, и я поддержу любого, кто может помочь в решении этого.
если вы пытаетесь достичь того же ( см. здесь ), но на этот раз для названия,
вы можете сделать это:
<?php if ($post->post_parent!=0) { // for child pages $permatitle = get_post_meta(end( get_ancestors( get_the_ID(), 'page' )), '_base_page_subtitle', true); } elseif($post->ID==0||count(get_pages('child_of='.$post->ID))==0) { //for HP or pages with no child $permatitle = get_post_meta(get_option( 'page_on_front' ), '_base_page_subtitle', true); } else { // for top level pages/parents $permatitle = get_post_meta($post->ID, '_base_page_subtitle', true); }
или еще лучше, объединить два:
<?php if ($post->post_parent!=0) { // Handling of Child Pages $permalink = get_permalink( end( get_ancestors( get_the_ID(), 'page' ))); $permatitle = get_post_meta(end( get_ancestors( get_the_ID(), 'page' )), '_base_page_subtitle', true); } elseif($post->ID==0||count(get_pages('child_of='.$post->ID))==0) { // Homepage or Pages with no Parent $permatitle = get_post_meta(get_option( 'page_on_front' ), '_base_page_subtitle', true); $permalink = home_url(); } else { // Handling of Top Level/Parent Pages $permatitle = get_post_meta($post->ID, '_base_page_subtitle', true); $permalink = get_permalink( end( get_ancestors( get_the_ID(), 'page' ))); }
то вы можете сделать это после:
<a href="<?php echo $permalink; ?>" title="<?php echo $permatitle; ?>">