我一直在寻找关于在互联网上列出所有 slug 的教程,但似乎找不到可以回显/返回我所在类别的 slug 的函数或代码行,以便我可以将其保存在变量中。
有谁知道它是什么?我需要能够在 archive-product.php 中使用它
提前致谢
我想知道如何在 django 中用阿拉伯语/波斯语字符串制作鼻涕虫?我想要实现的是创建像这样的slugs:
\n\n\xd8\xa7\xdb\x8c\xd9\x86-\xdb\x8c\xda\xa9-\xd8\xaa\xdb\x8c\xd8\xaa\xd8\xb1-\xd8\xa7\xd8\xb3\xd8\xaa\nRun Code Online (Sandbox Code Playgroud)\n\n在......之外\xd8\xa7\xdb\x8c\xd9\x86 \xdb\x8c\xda\xa9 \xd8\xaa\xdb\x8c\xd8\xaa\xd8\xb1 \xd8\xa7\xd8\xb3\xd8\xaa
也就是说,所有空格、逗号和括号都需要转换为连字符。
\n这是我的路线:
Route::get('{slug?}/{slug2?}/{slug3?}', 'PageController@show');
Run Code Online (Sandbox Code Playgroud)
这就是我在我的服务提供商中获得 slug 值的方式:
$this->app->request->route('slug2')
Run Code Online (Sandbox Code Playgroud)
我的网址看起来像base_url/slugorbase_url/slug/slug2或base_url/slug/slug2/slug3。无论我的网址如何,我都在寻找一种 Laravel 方式来获取最新的 slug。有没有办法做到这一点 ?
谢谢
基本上我找到了一个如下所示的 slug 函数:
function slug(string) => {
return string.toString().toLowerCase()
.replace(/\s+/g, '-')
.replace(/[^\w\-]+/g, '')
.replace(/\-\-+/g, '-')
.replace(/^-+/, '')
.replace(/-+$/, '');
};
Run Code Online (Sandbox Code Playgroud)
但是,它似乎不适用于俄语、希腊语、...字符。基本上它们在这一步被删除了.replace(/[^\w\-]+/g, ''),我不想要但我也想删除在某些国家不代表正常字母的其他特殊字符。
例子:
English| Do you know it rains?|do-you-know-it-rains
Czech| víš, že prší?|vis-ze-prsi
Romanian| ?ti c? plou??|sti-ca-ploua
Russian| ?? ??????, ??? ???? ??????|??-??????-???-????-?????
笔记:
基本上对于拉丁字母,我将保留字母但删除变音符号,但对于非拉丁字母,我将保持原样(我不想将它们转换为拉丁字符)
当我想从中创建新对象时,product出现此错误:
slugify() got an unexpected keyword argument 'allow_unicode'
这是我的模型:
class BaseModel(models.Model):
created_date = models.DateTimeField(auto_now_add=True)
modified_date = models.DateTimeField(auto_now=True,)
slug = models.SlugField(null=True, blank=True, unique=True, allow_unicode=True, max_length=255)
class Meta:
abstract = True
class Product(BaseModel):
author = models.ForeignKey(User)
title = models.CharField()
# overwrite your model save method
def save(self, *args, **kwargs):
title = self.title
# allow_unicode=True for support utf-8 languages
self.slug = slugify(title, allow_unicode=True)
super(Product, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我也为其他应用程序(博客)运行了相同的模式,但我没有遇到这个问题。 这个应用程序有什么问题吗?
我正在寻找一种方法来使用完全相同的slug url来发布一些帖子.
我网站的网址结构是:domain.com/category/slug
如果我在"二月"类别中创建了一个名为"martin-nicolausson"的帖子,我希望能够在下个月创建相同的slug,而不会在最后添加唯一标识符.
我的意思是一个现实的例子; http://www.5070.se/february/jacob-astrom-2
slu field场有什么好处?它是否使网址更具搜索引擎友好性?如果有,怎么样?页面搜索引擎不是一个有意义的标题足够友好吗?
我在MongoDB的Python/Flask中有一个简单的Web服务:https://github.com/rjurney/Collecting-Data/blob/master/src/python/web/index.py
它一遍又一遍地重复@ app.route代码:
@app.route("/email/<message_id>")
def email(message_id):
email = emaildb.find_one({"message_id": message_id})
print email
return render_template('partials/email.html', email=email)
# Enable /emails and /emails/ to serve the last 20 emaildb in our inbox unless otherwise specified
default_offsets={'offset1': 0, 'offset2': 0 + config.EMAIL_RANGE}
@app.route('/', defaults=default_offsets)
@app.route('/emails', defaults=default_offsets)
@app.route('/emails/', defaults=default_offsets)
@app.route("/emails/<int:offset1>/<int:offset2>")
def list_emaildb(offset1, offset2):
offset1 = int(offset1)
offset2 = int(offset2)
emails = emaildb.find()[offset1:offset2] # Uses a MongoDB cursor
nav_offsets = get_offsets(offset1, offset2, config.EMAIL_RANGE)
data = {'emails': emails, 'nav_offsets': nav_offsets, 'nav_path': '/emails/'}
return render_template('partials/emails.html', …Run Code Online (Sandbox Code Playgroud) 我一直在寻找一段时间没有成功,我找到了获取当前URL的方法,但无法弄清楚如何获取特定链接的最后一个字符串.
网址就像是
http://www.mywebsite.com/slug/
我需要得到的是链接URL中的"slug"部分
我目前的职能:
$('.filters a').click(function(e){
e.preventDefault();
var slug = '';
alert ( slug );
});
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激 :)
我已经删除了我的数据库中的所有Slugs,希望它们能够自动重新生成 - 但它们不会!
有没有办法触发再生?从TYPO3 <9升级时,最初生成了 - 但是怎么样?
谢谢你的帮助:)
slug ×10
python ×4
url ×4
django ×3
javascript ×2
php ×2
wordpress ×2
django-2.2 ×1
flask ×1
friendly-url ×1
jquery ×1
laravel ×1
loops ×1
lts ×1
mongodb ×1
typo3 ×1
typo3-9.x ×1
unicode ×1
web-services ×1
woocommerce ×1