GVKun编程网logo

php – WordPress – 如何更改相对链接的绝对链接(wordpress修改固定链接后打不开文章链接的处理)

4

对于php–WordPress–如何更改相对链接的绝对链接感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍wordpress修改固定链接后打不开文章链接的处理,并为您提供关于crawlspide

对于php – WordPress – 如何更改相对链接的绝对链接感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍wordpress修改固定链接后打不开文章链接的处理,并为您提供关于crawlspider爬取全网站原网站信息不全,目前怀疑主要是相对链接没有被转化为绝对链接、php – WordPress菜单:单击父菜单项,仅显示该链接的子导航子项、php – 如何在wordpress中显示标记链接、php – 将相对链接转换为绝对链接的有用信息。

本文目录一览:

php – WordPress – 如何更改相对链接的绝对链接(wordpress修改固定链接后打不开文章链接的处理)

php – WordPress – 如何更改相对链接的绝对链接(wordpress修改固定链接后打不开文章链接的处理)

我刚刚为客户完成了我的第一个wordpress站点,并通过FTP传输将文件发送到他们的服务器.我刚收到以下评论 –

“…有些东西似乎没有正确显示,或正确连接……看起来好像他们使用绝对链接而不是相对链接,所以某些事情没有正确地通过……”

我甚至没有意识到这将是一个问题,因为我认为所有的链接都需要改变.是否有一个代码函数可以在functions.PHP文件中进行修改?我已经看到有一个wp_make_link_relative和以下过滤器 –

add_filter( 'post_link','wp_make_link_relative' );       // normal post link
add_filter( 'post_type_link','wp_make_link_relative' );  // Custom post type link
add_filter( 'page_link','wp_make_link_relative' );       // Page link
add_filter( 'attachment_link','wp_make_link_relative' ); // Attachment link
add_filter( 'get_shortlink','wp_make_link_relative' );   // Shortlink

我应该将这些应用到我的functions.PHP文件中吗?这会修复一切还是我需要应用其他任何东西,比如插件?

解决方法

要获得图像/图标的相对链接,JS和CSS资产会执行以下操作.

我想你的资产就像这样,

- theme-name
- - assets
- - - images
- - - css
- - - js

因此,要访问js目录中名为scripts.js的文件,请使用以下代码链接到该文件

get_stylesheet_directory_uri() . '/assets/js/scripts.js'

它将返回以下URL

http://example.com/wp-content/themes/theme-name/assets/js/scripts.js

crawlspider爬取全网站原网站信息不全,目前怀疑主要是相对链接没有被转化为绝对链接

crawlspider爬取全网站原网站信息不全,目前怀疑主要是相对链接没有被转化为绝对链接

您好,我把我的问题给你详细描述一下,请您帮我解决一下。
用的是 crawlspider 爬取乐融商城全部的网站源代码,但是爬取到 http://www.lemall.com/product/search.html?level=1&cid1=1022 这一页面时,由于商品(“比如:乐视蓝牙耳机”)的链接是“ data-url="/product/products-pid-1002974-sku-400501000038.html ”,结果导致无法爬取 http://www.lemall.com/product/products-pid-1002974-sku-400501000038.html 页面源代码

php – WordPress菜单:单击父菜单项,仅显示该链接的子导航子项

php – WordPress菜单:单击父菜单项,仅显示该链接的子导航子项

我的wordpress导航功能遇到了一些问题.我有以下功能从管理员拉取菜单项:

function cr_get_menu_items($menu_location)
{
    $locations = get_nav_menu_locations();
    $menu = get_term($locations[$menu_location], 'nav_menu');
    return wp_get_nav_menu_items($menu->term_id);
}

在我的导航模板中,我使用此函数仅引入这样的父项:

  <?PHP $nav = cr_get_menu_items('navigation_menu') ?>
  <?PHP foreach ($nav as $link):
    if ($link->menu_item_parent == 0) : ?>
    <ahref="<?= $link->url ?>"><?= $link->title ?></a>
  <?PHP endif; endforeach; ?>

我试图创建一个子导航,显示这样的子项:

<?PHP $nav = cr_get_menu_items('navigation_menu') ?>
<?PHP foreach ($nav as $link):
if ($link->menu_item_parent !== 0) : ?>
<a href="<?= $link->url ?>"><?= $link->title ?></a>
<?PHP endif; endforeach; ?>

这将拉入所有子菜单项.我正在构建的导航应该工作的方式是:您单击父菜单项,子导航显示该父项的所有子菜单项.隐藏/显示功能都是JS.

有没有办法改变我必须只为特定的父菜单项拉入子项的功能?任何帮助/指导表示赞赏.

解决方法:

Is there a way to alter the function I have to pull in only children
for a specific parent menu item?

为此目的,是的,有.

尝试以下函数(替换现有的cr_get_menu_items()函数):

function cr_get_menu_items($menu_location, $parent = -1)
{
    $locations = get_nav_menu_locations();
    $menu = get_term($locations[$menu_location], 'nav_menu');
    $items = wp_get_nav_menu_items($menu->term_id);

    if ( is_numeric( $parent ) && $parent >= 0 ) {
        $_id = (int) $parent;
        foreach ( $items as $i => $item ) {
            if ( $_id !== (int) $item->menu_item_parent ) {
                unset( $items[ $i ] );
            }
        }
    }

    return $items;
}

用法示例:

$nav = cr_get_menu_items( 'navigation_menu' );    // Get all menu items.
$nav = cr_get_menu_items( 'navigation_menu', 0 ); // Get menu items whose parent ID is 0

UPDATE

在我重新阅读您的问题之后,这是您可能需要的功能:

// $items is the menu items array that you retrieved using `cr_get_menu_items()`,
// or other functions which return valid `nav_menu` items.
function cr_get_submenu_items( array $items, $parent ) {
    $parent = (int) $parent;

    $list = [];
    foreach ( $items as $item ) {
        if ( $parent === (int) $item->menu_item_parent ) {
            $list[] = $item;
        }
    }

    return $list;
}

更新#2

以下是cr_get_menu_items()和cr_get_submenu_items()的用法:

<?PHP $nav = cr_get_menu_items('navigation_menu') ?>

<!-- display parent items. -->
<?PHP $nav = cr_get_menu_items('navigation_menu') ?>
<?PHP foreach ($nav as $link):
if ($link->menu_item_parent == 0) : ?>
<ahref="<?= $link->url ?>"><?= $link->title ?></a>
<?PHP endif; endforeach; ?>

<!-- display children items. (in its own wrapper `div`/`ul`/etc.) -->
<?PHP $_ids = []; ?>
<?PHP foreach ($nav as $link):
$parent = (int) $link->menu_item_parent;
if ( 0 !== $parent && ! in_array( $parent, $_ids ) ) : ?>
<!-- This `div` is just an example wrapper. -->
<div>
    <?PHP foreach ( cr_get_submenu_items( $nav, $parent ) as $clink ): ?>
    <a href="<?= $clink->url ?>"><?= $clink->title ?></a>
    <?PHP endforeach; ?>
    <?PHP $_ids[] = $link->menu_item_parent; ?>
</div>
<?PHP endif; endforeach; ?>

php – 如何在wordpress中显示标记链接

php – 如何在wordpress中显示标记链接

每个帖子后我都会显示标签

<?PHP
 global $post;
 foreach(get_the_tags($post->ID) as $tag) {
  echo '<li>'.$tag->name.'</li>';
  }
?>

现在我需要显示标签不仅仅是文本,而是显示所有按给定标签过滤的帖子的链接,就像在单击问题下方的标签时在stackoverflow上一样.

>如何制作?
>将使用哪个页面模板来显示搜索结果?

解决方法:

<?PHP
global $post;
foreach(get_the_tags($post->ID) as $tag)
{
    echo '<li><a href="' . get_tag_link($tag->term_id) . '">' . $tag->name . '</a></li>';
}

将使用哪个页面模板来显示搜索结果:对于搜索模板,您可以使用follow me作为标签模板Tag_Template

php – 将相对链接转换为绝对链接

php – 将相对链接转换为绝对链接

我正在请求这样的网站的源代码:
<? $txt = file_get_contents('http://stats.pingdom.com/qmwwuwoz2b71/522741');
echo $txt; ?>

我想用绝对的替换相关链接!基本上,

<img src="/images/legend_15s.png"/> and <img src='/images/legend_15s.png'/>

应该被替换

<img src="http://domain.com/images/legend_15s.png"/>

<img src='http://domain.com/images/legend_15s.png'/>

分别.我怎样才能做到这一点?

此代码仅替换链接和图像:
<? $txt = file_get_contents('http://stats.pingdom.com/qmwwuwoz2b71/522741');
$txt = str_replace(array('href="','src="'),array('href="http://stats.pingdom.com/','src="http://stats.pingdom.com/'),$txt);
echo $txt; ?>

我测试过它的工作:)

更新

这是通过正则表达式完成并更好地工作:

<? $txt = file_get_contents('http://stats.pingdom.com/qmwwuwoz2b71/522741');
$domain = "http://stats.pingdom.com";
$txt = preg_replace("/(href|src)\=\"([^(http)])(\/)?/","$1=\"$domain$2",$txt);
echo $txt; ?>

完成:D

今天的关于php – WordPress – 如何更改相对链接的绝对链接wordpress修改固定链接后打不开文章链接的处理的分享已经结束,谢谢您的关注,如果想了解更多关于crawlspider爬取全网站原网站信息不全,目前怀疑主要是相对链接没有被转化为绝对链接、php – WordPress菜单:单击父菜单项,仅显示该链接的子导航子项、php – 如何在wordpress中显示标记链接、php – 将相对链接转换为绝对链接的相关知识,请在本站进行查询。

本文标签: