Как мне изменить только домашний URL-адрес логотипа на сайте wordpress с темой oceanWP?

У меня есть сайт, развернутый, скажем, abc.com, который использует angular для домашней страницы и WordPress для блогов. Я развернул веб-сайт WordPress во вложенной папке внутри abc.com. Файловая структура показана на изображении ниже.

Теперь я хочу изменить только ссылку на домашнюю страницу в логотипе веб-сайта WordPress, которая при нажатии перенаправит нас на abc.com. Остальные ссылки блога будут работать нормально, скажем 'abc.com/myProj/blog-detail'

Изображение файловой структуры

1 ответ

Решение

OceanWP использует the_custom_logo() функция для отображения вашего собственного логотипа и ссылки на домашнюю страницу сайта WordPress (example.com/myProj). Файл, отображающий логотип, находится по адресу/wp-content/themes/oceanwp/partials/header/logo.php.

Вы можете использовать get_custom_logo, чтобы изменить HTML-код пользовательского логотипа и изменить ссылку, указывающую на фактическую домашнюю страницу (example.com).

Для этого вам нужно создать дочернюю тему (или плагин) и вставить следующее в свойfunctions.php файл:

<?php
/**
 * Modify the logo link
 *
 * @param string $html  Custom logo HTML output
 * @param int $blog_id  ID of the blog to get the custom logo for
 * @return string       Custom logo HTML output with modified link
 */
function oceanwp_child_modify_logo_link( $html, $blog_id ) {
  $custom_logo_id = get_theme_mod( 'custom_logo' );
  $html = sprintf(
    '<a href="%1$s" class="custom-logo-link" rel="home">%2$s</a>',
    esc_url( 'https://example.com/' ),  // modify the link here
    wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr )
  );

  return $html;
}

add_filter( 'get_custom_logo', 'oceanwp_child_modify_logo_link', 10, 2 );

Если вам также нужно обработать такие вещи, как пустой атрибут alt логотипа или не установлен логотип, вы можете обратиться к get_custom_logo() функция.

(Я тестировал его на WordPress 5.3.2 и OceanWP 1.7.4)

Другие вопросы по тегам