0

我正在使用 wordpress 和购买的模板建立一个网站。我在选项/页面创建中添加了一些功能。可以在选项中设置一般元描述,并在创建页面时为每个页面设置元描述。

尽管我对 PHP 完全陌生,但我设法将所有必要的内容添加到我的代码中。这并不难,而且效果很好。我的问题是:我做得对吗?如何优化我的解决方案?我的方法有什么缺点?

HTML (header.php):

<?php
// Defining a global variable
global $page_meta_description;

// Initializing the variable with the set value from the page
$page_meta_description= get_post_meta($post->ID, MTHEME . '_page_meta_description', true);

// Add meta tag if the variable isn't empty
if ( $page_meta_description != "" ) { ?>
    <meta name="description" content="<?php echo $page_meta_description; ?>" />

<?php }

// Otherwise add globally set meta description
else if ( of_get_option('main_meta_description') ) { ?>
    <meta name="description" content="<?php echo of_get_option('main_meta_description'); ?>" />
<?php }

// Set global meta keywords
if ( of_get_option('main_meta_keywords') ) { ?>
    <meta name="keywords" content="<?php echo of_get_option('main_meta_keywords'); ?>" />
<?php } ?>
4

1 回答 1

1

您可以使用wp_head挂钩。

// write this in your plugin
add_action('wp_head', 'myplugin_get_meta_tags');

function myplugin_get_meta_tags()
{
    $content = '';
    $content .= '<!-- add meta tags here -->';
    return $content;
}

我认为这比在 header.php 文件中执行所有逻辑要优雅一些。

如果您不想为此创建插件,或者单个主题需要它,则可以将此代码添加到主题的functions.php文件中(查看链接以获取更多信息)。

笔记

您的解决方案的缺点是:

  • 如果您需要创建使用不同标头的新模板,则需要将元代码复制到每个新文件中,并且在进行更改时,将它们放在所有头文件中
  • 模板文件中的逻辑应该尽可能少,并且有一堆ifs 会不必要地弄乱它。
于 2013-06-07T07:09:22.570 回答