Как мне изменить только домашний 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)